Python子类在构造函数中使用父变量

标签 python class

所以我正在开发一个基于文本的 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/

相关文章:

php - 如何在静态方法中调用类的成员变量?

javascript - 将项目从 mootools 迁移到 prime

python - HTTPForbidden 上下文路由未触发

python - Django 选择多对多字段而不引发错误

python - 如何使用 APScheduler 限制作业的持续时间?

C++ 类,基本重载错误

python - 使用python查找我的计算机的MAC地址

python - 如何从 Shell 脚本获取循环变量以在 python 脚本中检索

c# - 列表 - 如何通过引用查找项目?

java - 是否有理由在忽略返回值的情况下调用 obj.getClass() ?