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

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 67,464 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.