1.- El ejemplo de arriba le falta heredar de clase object, para que funcione lo de los setters y getters.
2.- A los objetos en python le puedes ir agregando propiedades.
Ejemplo simple:
Código python:
Ver originalclass Objeto():
def __init__(self):
pass
obj = Objeto()
obj.x = 0
print obj.x
Solo para que veas la diferencia que hay:
Código python:
Ver originalclass Persona(object):
def __init__(self):
self.__nombre = ""
self.__apellido = ""
self.__dni = ""
def getNombre(self):
return self.__nombre
def setNombre(self, n):
self.__nombre = n
def getApellido(self):
return self.__apellido
def setApellido(self, a):
self.__apellido = a
def getDni(self):
return self.__nombre
def setDni(self, d):
self.__dni = d
nombre = property(getNombre, setNombre)
apellido = property(getApellido, setApellido)
dni = property(getDni, setDni)
p = Persona()
p.nombre = "fulanito"
print p.nombre
print p.getNombre()
Si le quitas la herencia veras, imprimira fulanito y después una linea en blanco.