嗨,我得到了这个错误
TypeError: attack() missing 1 required positional argument: 'self'这是我的代码
class Enemmy :
life = 3
self = ""
def attack(self):
print ("ouch!!!!")
self.life -= 1
def checkLife(self):
if self.life <= 0 :
print ("dead")
else:
print (self.life)
enemy=Enemmy
enemy.attack()我检查并查看了大多数地方,说我在def攻击中忘记了自己,或者说我需要创建一个obj来将类放入im使用python 3.4和py charm。我实际上是从教程中得到这段代码的,我不知道我的错误在哪里。
发布于 2015-05-12 02:19:22
您没有实例化Enemy类。您正在创建一个对类本身的新引用。然后,当您尝试调用一个方法时,您是在没有实例的情况下调用它,该实例应该进入attack()的self参数。
变化
enemy = Enemy至
enemy = Enemy()此外(正如Kevin在评论中指出的那样)您的Enemy类可能应该有一个init方法来初始化它的字段。例如。
class Enemy:
def __init__(self):
self.life = 3
...发布于 2015-05-12 02:18:51
您需要创建和使用类的实例,而不是类本身:
enemy = Enemmy()然后,该实例可作为self访问。如果你没有一个实例,那么它就会丢失,这就是错误消息告诉你的。
https://stackoverflow.com/questions/30174847
复制相似问题