Python Object-Oriented Python Instant Objects Method Interactivity

Aiden Li
Aiden Li
2,779 Points

What am I doing wrong?

it says that praise() takes up 1 positional argument while 2 were given... what does that mean?

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

Look at the code 👇

class Student:
    name = "Aiden Li"

    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)

If I tell you, use the praise method and the reassurance method, you would first make an instance of the Student class like this

>>> aiden = Student()

Now aiden is an instance of class Student, to use the methods you might go something like this;

>>> aiden.praise()
"You inspire me, Aiden Li"

>>> aiden.reassurance()
"Chin up, Aiden Li You'll get it next time!"

So now, bring the feedback method into picture;

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() 👈# self.praise() = aiden.praise(), same like above examples.
        else:
            return self.reassurance() 👈# self.reassurance() = aiden.reassurance(), same like above examples.

You have to call them by using the instance, not the class