[pyar] sobre atributos y __dict__
Pablo Ziliani
pablo en kultroom.com
Lun Feb 21 23:56:48 ART 2011
On 02/21/2011 10:25 PM, #Mike - wrote:
> Tengo una duda cuando se define una clase y luego desde una instancia
> se crea un atributo de esta manera:
> obj.__class__.attr="value" , y cual es la diferencia con obj.attr1="value1"
Mike, en tus pruebas queda bastante clara la diferencia.
A través del atributo __class__ de una instancia se accede a su clase.
Al asignarle un atributo a __class__ estás en la práctica asignándolo a
su clase. En tu ejemplo, esto es equivalente a haber puesto el atributo
directamente en la definición de la clase.
Quizás no tengas tan claro que hay dos namespaces: el de la instancia y
el de la clase. Cuando llamás al atributo de una instancia, python
primero se fija en su namespace y si no está definido, busca en su clase
y luego en sus superclases.
Si te interesa el tema, podés ver la ayuda en inglés:
- http://docs.python.org/reference/datamodel.html
o esta página del tutorial en castellano:
- http://docs.python.org.ar/tutorial/classes.html (seguramente habrán
mejores referencias en castellano)
More information about the pyar
mailing list