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 Instant Objects Method Interactivity

Guy Lorshbaugh
seal-mask
PLUS
.a{fill-rule:evenodd;}techdegree seal-36
Guy Lorshbaugh
Python Development Techdegree Graduate 10,892 Points

Defining Methods in Methods?

This seemed like a pretty straightforward challenge, with an if statement pointing to two methods already laid out in the class. But I'm getting "Exception: name 'praise' is not defined" I can't figure out what definition is required, or if I need to pas arguments through, or what. It's got my head spinning.

I've watched the two videos leading up to this assignment over three or more times each and I'm not finding any clarification, The questions and answers other are exchanging don't seem to pertain to my issue, or I'm simply not understanding them either. Am I missing something in these lessons, or did I miss something farther back? I'm totally flummoxed.

first_class.py
class Student:
    name = "Your Name"

    def praise(self):
        return "You inspire me, {}".format(self.name)

    def reassurance(self):
        return "Chin up, {}. You'll get it next time!".format(self.name)

    def feedback(self, grade):
        if grade > 50: 
            Student.praise()
        else:
            Student.reassurance()

1 Answer

Chris Freeman
MOD
Chris Freeman
Treehouse Moderator 68,427 Points

You are very close! To refer to methods of an instantiated model, use the self reference. The self is part of the parameter list and contains a reference to the current instance.

Side note: Using Student.<method_name> would be almost correct if you meant to reference class methods. A class method is decorated with @classmethod and the first parameter is typically "cls" to signify the reference is to the class and not to an instance of the class. The reference would then be cls.<method_name>.

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