我正在开发一款游戏,我想做的一件事是拥有一个定义属性损坏的基类,并使用构造函数来启动该值。这是我的基类
class Weapon(object):
def __init__(self, damage):
self.damage = damage
这是为游戏调用 Weapon 的实际类
class Crossbow(Weapon):
is_loaded = True
reloads = 5
def __init__(self, is_loaded, reloads):
super(Crossbow, self).__init__()
self.is_loaded = is_loaded
self.reloads = reloads
def reload(self):
print "You need to reload, before you can fire again"
time.sleep(2)
if reloads > 0:
print "Reloading bow"
time.sleep(2)
reloads -= 1
is_loaded = True
print "Successfully reloaded bow"
time.sleep(1)
print "You now have",reloads,"arrow left"
time.sleep(2)
else:
print "You don't have any more arrows"
time.sleep(2)
我正在使用以下方法测试重新加载功能:
c = Crossbow(Weapon)
for i in range(1,6):
c.reload()
我运行类方法 6 次的原因是我想测试 reload 变量,它计算你重新加载的次数。它每次计数都会减去,一旦达到零,它就不会让你重新加载,所以 6 次就可以测试完整的功能。但是,当我运行该代码块时,出现此错误:
me.py", line 47, in <module>
c = Crossbow(Weapon)
TypeError: __init__() takes exactly 3 arguments (2 given)
我以前使用过类,但我不熟悉创建基类和构造函数并从中调用其他类。如果有人可以帮助我理解我的问题,我将不胜感激。