Python Object-Oriented Python Instant Objects Method Interactivity

Feedback Method

I worked through this got it correct, but I don't have a full understanding why.

Why are we using self.praise() and self.reassurance() in the feedback method? Why can it not just be called as praise() or reassurance()?

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:
            return self.praise()
        else:
            return self.reassurance()

1 Answer

Steven Parker
Steven Parker
203,217 Points

When you reference methods (or attributes) of the current class instance, you put "self." before the item's name. Without the prefix, it looks like you're referencing a global function or variable (and if one by that name exists, you would be).