我正在尝试创建一个函数,每当属性增加或减少时,都可以提高最大生命值。我试过换衣服自我.maxHpCalc()player.**将变量=(int)移到orc类中,这是我能想到但一直没有运气的原因。根据我如何改变它,我得到自己/玩家没有属性强度,maxHp或maxHpCalc没有定义。在
class player:
def __init__(self, hp = 1 , maxHp = 1, strength = 4, defense = 5):
self.hp = hp
self.maxHp = maxHpCalc()
self.strength = strength
self.defense = defense
def maxHpCalc():
player.maxHp = player.strength + player.defense
class orc(player):
def __init__(self, hp, maxHp, strength , defnese):
super().__init__(hp, maxHp, strength, defense)
print(player.maxHp)
我所改变的一切都给了我球员/自我目前没有属性力量
这里有一些固定的代码,用一个小的驱动程序来练习类。在
请注意以下更改
maxHpCalc
要对player
实例中包含的数据进行操作,则它应该是一个绑定方法。因此它应该有一个self
参数,并且应该从该自引用引用中引用strength
和{_maxHpCalc
时,应该引用self
。我把它变成了一个绑定方法,它需要一个实例来处理。我添加了一个下划线来表示它是一个私有方法。在strength
和{maxHpCalc
,否则在调用函数时不会定义它们。在player.maxHp
没有意义。player
是一个类,没有静态 属性maxHp
,您需要一个实例来访问该属性。我创建一个实例并引用它。在代码:
我还要问,如果不使用构造函数参数,而是从其他参数计算它,为什么要包含它?在
相关问题 更多 >
编程相关推荐