class Character(Entity):
def __init__(self, x, y, hp):
Entity.__init__(self, x, y)
self.hp = hp
self.items = []
Character
是父类的子类Entity
. Entity
类还有一个__init__
功能。为什么需要同时写__init__
功能?为什么不只写__init__()
为了Character
类,这将覆盖__init__()
for Entity
?
这取决于发生了什么Entity.__init__
!如果(并且only if)它所做的一切都是设置的self.x
and self.y
,你可以这样做:
class Character(Entity):
def __init__(self, x, y, hp):
self.x = x
self.y = y
self.hp = hp
self.items = []
但这已经长了一行,如果还要别的吗除了为实例属性设置参数之外,还可以在Entity.__init__
(例如,self.items = []
in Character.__init__
) your Character
可能无法正常工作。
调用超类是一个很好的做法__init__
方法,以确保所有需要完成的事情都能完成。
您可以使用以下命令使您的代码更加通用super
:
class Character(Entity):
def __init__(self, x, y, hp):
super(Character, self).__init__(x, y)
所以如果你改变什么Character
继承自你的__init__
仍然有效。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)