Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

Python Basic Object-Oriented Python Welcome to OOP Adding to our Panda

please help im stuck , im getting assertion Error

class Panda: species = 'Ailuropoda melanoleuca' food = 'bamboo'

def __init__(self, name, age):
    self.is_hungry = True
    self.name = 'Bao Bao'
    self.age = age

def eat(self):
    self.is_hungry = False
    return f'{self.name} eats {self.food}'

panda_one = Panda('Bao Bao', 10) panda_one.eat()

panda.py
class Panda:
    species = 'Ailuropoda melanoleuca'
    food = 'bamboo'

    def __init__(self, name, age):
        self.is_hungry = True
        self.name = 'Bao Bao'
        self.age = age

    def eat(self):
        self.is_hungry = False
        return f'{self.name} eats {self.food}'

panda_one = Panda('Bao Bao', 10)
panda_one.eat()    

1 Answer

Hi Tafadzwa!

I'll have to admit, the instructions are a little confusing.

This passes all three tasks:

class Panda:
    species = 'Ailuropoda melanoleuca'
    food = 'bamboo'

    def __init__(self, name, age): # You'd use 'Bao Bao' when instantiating the class (not part of the challenge, though)
        self.is_hungry = True
        self.name = name # Use name here, not "Bao Bao" - one misleading instruction
        self.age = age

    def eat(self):
        self.is_hungry = False
        return f"{self.name} eats {self.food}." # You need the period at the end here

    def check_if_hungry(self):
        if self.is_hungry == True:
            self.eat()

# You don't need the two lines that create the instance of the class, but, of course, you would in the real world...
# And this is where you'd pass 'Bao Bao' for name...
# But, if they had been needed, you did code those two lines correctly:
# ======================================================
# panda_one = Panda('Bao Bao', 10) #Correct
# panda_one.eat() # Correct

I hope that helps.

Stay safe and happy coding!