Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Python Object-Oriented Python Inheritance Super!

Tobiasz Lorenc
Tobiasz Lorenc
3,757 Points

Help, i dont know how to override method (thanks!)

Problem with override method

inventory.py
class Inventory:
    def __init__(self):
        self.slots = []

    def add_item(self, item):
        self.slots.append(item)
class SortedInventory(Inventory):
    def __init__(self):
        super().__init__()
        self.add_item()

Great! Now override the add_item method. Use super() in it to make sure the item still gets added to the list.

2 Answers

Ken Stone
Ken Stone
29,703 Points

Just taking a wild shot here I think you need to use super to call add_item of the parent class.

class Inventory:
    def __init__(self):
        self.slots = []

    def add_item(self, item):
        self.slots.append(item)
class SortedInventory(Inventory):
    def __init__(self):
        super().__init__()
        self.add_item()
    def add_item(self, item):
      super().add_item(item)
Tobiasz Lorenc
Tobiasz Lorenc
3,757 Points

U had right. I nedded to delete "self.add_item()" Thank YOU!!

Ken Stone
Ken Stone
29,703 Points

Oh yeah in init I agree I think you need to delete self.add_item()