发现一个问题,如果父类里面的方法需要使用子类的属性,那么父类里面的属性就会报属性未定义,也许不会影响使用,但是总觉得哪里不对,正确的方法应该是什么?如下,父类里面有一个治疗方法,可以治疗生命值,但是父类本身没有生命值和最大生命值的属性,因此在写代码的时候,程序会提示一些错误。
class Warriors:
def healing(self, stone_number): # 父类里面定义一个治疗方法,可以治疗生命值
if self.health == self.max_health:
return
self.health += stone_number
if self.health > self.max_health:# 超过最大生命值,不再加生命值
self.health = self.max_health
class Archers(Warriors):
typename = '弓箭手'
price = 100
max_health = 100
def __init__(self, name, health=max_health):
self.name = name
self.health = health