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.")