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 Basic Object-Oriented Python Welcome to OOP Adding to our Panda

Trouble with methods challenge. Help please

Not sure what I'm doing wrong here. First I had a print function where the return function now is and... it didn't like it. Please help.

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

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

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

2 Answers

Chris Freeman
MOD
Chris Freeman
Treehouse Moderator 68,457 Points

Hi matthew mahoney, you are really close. Two errors to fix:

  • the checker is looking for a space following the keyword return.
  • the references to instance attributes need to include โ€œselfโ€: self.name and self.food

The parens within a return statement may still be valid to group the return value across multiple lines. Python forgives the absence of space before the open paren, but the checker and PEP8 are against it.

Post back if you need more help. Good luck!!!

Thank you soooo much! this is the answer to my problem... makes sense now!

So return is a keyword and not a function. Also return does not send anything to the standard out. If you want that value printed you would need to do something like:

sad_panda = Panda('sad', 1)
result = sad_panda.eat()
print(result)

# or

print(sad_panda.eat())

Also you probably should not have name in the body of the class and the __init__ method.

I hope this helps.