我试图让程序从enemyUnit
获取hp属性,从unit
获取攻击属性,从tackle
获取伤害属性,并将它们放到方法getHit()
中的一个数学问题中。代码如下:
class Pokemon(object):
def __init__(self,hp,attack,defence):
self.hp = hp
self.attack = attack
self.defence = defence
def getHit(self,damage,hp,attack):
self.hp -= damage * self.attack/self.defence
print str(self.hp)
class Move(object):
def __init__(self,damage):
self.damage = damage
unit = Pokemon(10,2,3)
enemyUnit = Pokemon(4,2,3)
tackle = Move(3)
enemyUnit.getHit(enemyUnit,tackle,unit)
不幸的是,它给了我一个错误
unsupported operand type(s) for *: 'Pokemon' and 'int'
如何从每个类的所有实例中获取所有变量并将它们放入一个函数中?你知道吗
在
getHit()
方法中传递参数:hp
attack
defence
但是当您在
enemyUnit.getHit(enemyUnit, tackle, unit)
中调用它时,您传递的是enemyUnit
,它是Pokemon
类的一个对象。这会导致错误。你知道吗您可能希望在以下位置传递正确的参数:
编辑:
我认为最好的办法是实现
getHit()
方法,如下所示:并称之为:
注意,您传递的是
hp
和attack
,它们是Pokemon
的属性。您可以通过调用obj.hp
和obj.attack
来使用它们。你知道吗相关问题 更多 >
编程相关推荐