In the following program, at what point does my program call the _str__ method/constructor? I don't see it specifically being called at any point. I know it happens with this line print
"Printing crit1:" print crit1
but I still don't see how or when this happens. Thanks for any and all help.
# Attribute Critter # Demonstrates creating and accessing object attributes class Critter(object): """A virtuaal pet""" def __init__(self, name): print "A new critter has been born!" self.name = name def __str__(self): rep = "Critter object\n" rep += "name: " + self.name + "\n" return rep def talk(self): print "Hi. I'm", self.name, "\n" # main crit1 = Critter("Poochie") crit1.talk() crit2 = Critter("Randolph") crit2.talk() print "Printing crit1:" print crit1 print "Directly accessing crit1.name:" print crit1.name raw_input("\n\nPress the enter key to exit.")