【发布时间】:2017-06-13 04:52:06
【问题描述】:
我是 Python 的新手,我正在尝试学习如何使用类。有谁知道这怎么不起作用?任何关于关键字“self”的额外提示将不胜感激。
代码:
class Enemy:
life = 3
def attack(self):
print('ouch!')
self.life -= 1
def checkLife(self):
if self.life <= 0:
print('I am dead')
else:
print(str(self.life) + "life left")
enemy1 = Enemy
enemy1.attack()
enemy1.checkLife()
错误:
C:\Users\Liam\AppData\Local\Programs\Python\Python36-32\python.exe C:/Users/Liam/PycharmProjects/YouTube/first.py
Traceback (most recent call last):
File "C:/Users/Liam/PycharmProjects/YouTube/first.py", line 16, in <module>
enemy1.attack()
TypeError: attack() missing 1 required positional argument: 'self'
Process finished with exit code 1
【问题讨论】:
-
enemy1 = Enemy不是如何实例化和Enemy对象。您刚刚将Enemy类分配给变量enemy1。 -
Enemy是类。Enemy()是该类的一个新实例。将enemy1设置为后者。 -
谢谢你们,成功了