class Person: 
    def __init__(self, name):
        self._name = name

    def getName(self):
        print('pobieranie...')
        return self._name

    def setName(self, value):
        print('modyfikacja...')
        self._name = value

    def delName(self):
        print('usunięcie...')
        del self._name

    name = property(getName, setName, delName, 'name property docs')

bob = Person('Robert Zielony')           # bob ma zarządzany atrybut
print(bob.name)                          # Wykonuje getName
bob.name = 'Robert A. Zielony'           # Wykonuje setName
print(bob.name)
del bob.name                             # Wykonuje delName


print('-'*20)
anna = Person('Anna Czerwona')           # anna także dziedziczy właściwość
print(anna.name)
print(Person.name.__doc__)               # Lub help(Person.name)


