Python Object-Oriented Python Instant Objects Method Interactivity

I am getting Attribute error

Bummer: AttributeError: 'Student' object has no attribute 'feedback'

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(self)

2 Answers

Stivan Radev
Stivan Radev
6,997 Points
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)

# it was an indentation issue, this should work now
    def feedback(self, grade):
         if grade > 50:
             return self.praise()
         else:
             return self.reassurance(self)
Mark Sebeck
MOD
Mark Sebeck
Treehouse Moderator 25,119 Points

That is a bummer! But you are really close.

First in Python always make sure your functions and methods line up. See how feedback is indented? So Python thinks that method is inside reassurance. Just move it back to line up with reassurance.

Second when calling reassurance you can't pass self. Self is automatically passed. Just pass nothing like you did when calling praise().

Hope that help. Good luck!

Stivan Radev
Stivan Radev
6,997 Points

Good catch, I didn't even notice 'self' in reassurance.

             return self.reassurance(self)