usando Python, se puede establecer un atributo de un ejemplo a través de cualquiera de los dos métodos siguientes:¿Cómo asigno una propiedad a una instancia en Python?
>>> class Foo(object):
pass
>>> a = Foo()
>>> a.x = 1
>>> a.x
1
>>> setattr(a, 'b', 2)
>>> a.b
2
También se puede asignar propiedades a través del decorador propiedad.
>>> class Bar(object):
@property
def x(self):
return 0
>>> a = Bar()
>>> a.x
0
Mi pregunta es, ¿cómo puedo asignar una propiedad a una instancia?
Mi intuición era intentar algo como esto ...
>>> class Doo(object):
pass
>>> a = Doo()
>>> def k():
return 0
>>> a.m = property(k)
>>> a.m
<property object at 0x0380F540>
... pero, consigo este inmueble objeto extraño. Experimentos similares arrojaron resultados similares. Supongo que las propiedades están más relacionadas con las clases que con las instancias en cierto sentido, pero no conozco el funcionamiento interno lo suficientemente bien como para entender lo que está sucediendo aquí.
Estoy bastante seguro de que necesitan que esto sea por instancia. Lo que propones afectaría todas las instancias. –
Argh! ¡1 minuto antes que yo! :) +1 – rubik
@Ross - Lo sé, dice eso en la respuesta. Simplemente no es posible agregar una propiedad a una instancia. Ver el hilo que he vinculado. – agf