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 trialGuy Lorshbaugh
Python Development Techdegree Graduate 10,892 PointsDefining 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.
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
Treehouse Moderator 68,427 PointsYou 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!!