Please look at the program below as well as my understanding of how it flows and correct me if I'M wrong. Thanks
The first line in main - crit = Critter("Poochie"), creates an object with the string "Poochie" and autmoatically calls __init__, printing "A new critter has been born!"
__init__ creates a private attribute name?
The second line in main crit.talk() and prints Hi, I'm, self.name ("Poochie"), which it is able to get because get_name method?
print cirt.name prints "Poochie", again using the get_method?
# Property Critter
# Demonstrates get and set methods and properties
class Critter(object):
"""A virtual pet"""
def __init__(self, name):
print "A new critter has been born!"
self.__name = name
def get_name(self): #---------------------------------------reads a value to a private name?
return self.__name
def set_name(self, new_name): #-----------------------------set's a value to a private name?
if new_name == "":
print "A critter's name can't be the empty string."
else:
self.__name = new_name
print "Name change successful."
name = property(get_name, set_name) #----------------------allows access through dot notaion
def talk(self):
print "\nHi, I'm", self.name
# main
crit = Critter("Poochie")
crit.talk()
print "\nMy critter's name is:",
print crit.name
print "\nAttempting to change my critter's name."
crit.name = ""
print "\nAttempting to change my critter's name again."
crit.name = "Randolph"
crit.talk()
raw_input("\n\nPress the enter key to exit.")