File: LP6E/Chapter38/prop-person.py
class Person:
def __init__(self, name):
self._name = name
def getName(self):
print('fetch...')
return self._name
def setName(self, value):
print('change...')
self._name = value
def delName(self):
print('remove...')
del self._name
name = property(getName, setName, delName, 'name property docs')
sue = Person('Sue Jones') # sue has a managed attribute
print(sue.name) # Runs getName
sue.name = 'Susan Jones' # Runs setName
print(sue.name)
del sue.name # Runs delName
print('-'*20)
bob = Person('Bob Smith') # bob inherits property too
print(bob.name)
print(Person.name.__doc__) # Or help(Person.name)