__init__() missing 1 required positional argument: 'quantity'
<p>I am getting the error as shown in the question, and I can't figure out why. Even when trying other stackoverflow methods of fixing this it doesn't work.</p>

<p>Thanks all :)</p>

<pre><code>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)
</code></pre>

<p>Edit: Thanks everyone, this question has been answered :)</p>

<p>Edit 2: The lines affected with the error codes:</p>

<pre><code>Traceback (most recent call last):
  File "C:\Stuff\SG\Work\Inventory.py", line 33, in &lt;module&gt;
    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'
</code></pre>

<p>Sidenote: All answers below are correct</p>

<p>Simply use <code>super</code> for inheritance in Python (read <a href="http://stackoverflow.com/questions/576169/understanding-python-super-with-init-methods">here</a> for more details):</p>

<pre><code>class Weapon(Item):
     def __init__(self, name, style, quantity = 1):
         super(Weapon, self).__init__(name, style, quantity)
</code></pre>

python python-3.x