Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 子类、意外参数和未解决引用的问题_Python_Python 3.x_Class_Subclass_Superclass - Fatal编程技术网

Python 子类、意外参数和未解决引用的问题

Python 子类、意外参数和未解决引用的问题,python,python-3.x,class,subclass,superclass,Python,Python 3.x,Class,Subclass,Superclass,所以我试图制作一个无休止的文本冒险游戏(使用网站的帮助),但我的课程有一些问题: class Item: def __init__(self, name, desc, usable, value): self.name = name self.desc = desc self.usable = usable self.value = value def __str__(self): return "{}\n=====\n{}\nValue: {}\n"

所以我试图制作一个无休止的文本冒险游戏(使用网站的帮助),但我的课程有一些问题:

class Item:
def __init__(self, name, desc, usable, value):
    self.name = name
    self.desc = desc
    self.usable = usable
    self.value = value

def __str__(self):

    return "{}\n=====\n{}\nValue: {}\n".format(self.name, self.desc, self.usable, self.value)


class Weapon(Item):

    def __init__(self, damage):
        self.damage = damage
        super().__init__(desc, name, usable, value)

    def __str__(self):
        return "{}\n=====\n{}\nValue: {}\nDamage: {}".format(self.name, self.damage, self.desc, self.usable, self.value)


class BrokenSword(Weapon):

    def __init__(self):
        super(Weapon, self).__init__(name="Broken Sword",
                                     desc="A sword that didn't resist time.",
                                     value=1,
                                     usable=0,
                                     damage=1)

PyCharm声明
武器
类中的
描述、名称、可用
(在
super()内部).\uuuu init\uuuu()
)是未解决的引用,它们是
断字(武器)
类中的意外参数。代码与教程非常相似,那么它有什么问题?教程是用Python2.x编写的吗?如何修复代码?

武器类不知道这些参数是什么。你必须在本地或全球范围内定义它们。所以
武器.\uuuuu init\uuuu
应该接受参数:

class Weapon(Item):
    def __init__(self, desc, name, usable, value, damage):
        super().__init__(
            desc=desc,
            name=name,
            usable=usable,
            value=value
        )
        self.damage = damage