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!

Ben Hedgepeth
seal-mask
.a{fill-rule:evenodd;}techdegree
Ben Hedgepeth
Python Web Development Techdegree Student 10,287 Points

Stuck on method overriding

I'm stuck with how to implement what the challenge is asking for. What can I do to fix it?

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

    def add_item(self, item):
        self.slots.append(item)

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

1 Answer

Steven Parker
Steven Parker
229,644 Points

Any time you invoke (call) a method, you must put parentheses () after the method name, even if you are not passing any arguments.

Your call to "super()" is missing the parentheses.

Ben Hedgepeth
seal-mask
.a{fill-rule:evenodd;}techdegree
Ben Hedgepeth
Python Web Development Techdegree Student 10,287 Points

I'm not sure what I else I can do to pass the challenge?

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

    def add_item(self, item):
        self.slots.append(item)

class SortedInventory(Inventory):
    def add_item(item):
        super().add_item(item)
Steven Parker
Steven Parker
229,644 Points

I see you fixed the "super" call, but somehow you also lost the "self" parameter from "add_item". Put that back as you had it before and you should pass task 2.