所以我正在开发一个基于文本的 RPG,并且我有一个类 Item,如下所示:
class Item:
def __init__(self, name, value):
self.name = name
self.value = value
接下来我有一个武器类,我想从项目类继承它,并且在武器构造函数中我希望它采用“名称”和“值”变量。在我看来,它的工作原理是这样的:
class Weapon(Item):
def __init(self, name, value, damage):
self.damage = damage
我知道这是错误的,但这本质上就是我认为它应该如何工作的方式。我在“super()”函数上查找了一堆线程,但没有一个解释似乎是这样做的。那么这是可能的还是我应该将武器类别分开?另外...当它起作用时...构造函数调用会是什么样子?
最佳答案
您可以在 Weapon
类中按如下方式使用它:
class Weapon(Item):
def __init__(self, name, value, damage):
super(Weapon, self).__init__(name, value)
self.damage = damage
并且一定要使用新式类,即继承自object
:
class Item(object):
...
关于Python子类在构造函数中使用父变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22970182/