__init __()缺少1个必需的位置参数:'quantity'

aim*_*per 1 python python-3.x

我收到了问题中显示的错误,我无法弄清楚原因.即使尝试其他stackoverflow方法来修复它也不起作用.

谢谢大家:)

class Item(object):
    def __init__(self, name, style, quantity):
        self.name = name
        self.style = style
        self.quantity = quantity

    def itemadd(self):
        inventory.append(Item)

class Weapon(Item):
    def __init__(self, name, style, quantity = 1):
        Item.__init__(name, style, quantity,)

    def weaponadd(self):
        inventory.append(Weapon)


class Ammo(Item):
    def __init__(self, name, style, quantity = 1):
        Item.__init__(name, style, quantity)

    def ammoadd(self):
        inventory.append(Ammo)


class Armour(Item):
    def __init__(self, name, style, quantity = 1):
        Item.__init__(name, style, quantity)

    def armouradd(self):
        inventory.append(Armour)

Bow = Weapon(name = "Bow", style = "WRanged", quantity = 1)
Run Code Online (Sandbox Code Playgroud)

编辑:谢谢大家,这个问题已经回答:)

编辑2:受错误代码影响的行:

Traceback (most recent call last):
  File "C:\Stuff\SG\Work\Inventory.py", line 33, in <module>
    Bow = Weapon(name = "Bow", style = "WRanged", quantity = 1)
  File "C:\Stuff\SG\Work\Inventory.py", line 12, in __init__
    Item.__init__(name, style, quantity,)
TypeError: __init__() missing 1 required positional argument: 'quantity'
Run Code Online (Sandbox Code Playgroud)

旁注:以下所有答案都是正确的

raf*_*elc 6

更改

Item.__init__(name, style, quantity,)
Run Code Online (Sandbox Code Playgroud)

对于

super().__init__(name, style, quantity)
Run Code Online (Sandbox Code Playgroud)