[Python-es] es posible convertir __setattr__ en un staticmethod?

Juan Ignacio euribates en gmail.com
Lun Feb 28 10:20:13 CET 2011


2011/2/28 Jose Caballero <jcaballero.hep en gmail.com>:

> La pregunta es si se puede hacer algo como
> class myclass:
>    def __setattr__(key, value):
>          self.__dict__[key] = value
>          print 'passing key %s with value %s' %(key, value)
>    __setattr__ = staticmethod( __setattr__ )
>
> y luego poder hacer
>
> myclass.x = 1
> myclass.y = 2

Se puede, pero no hace falta:

>>> class C(object):
...     pass
...
>>> C.x = 1
>>> C.y = 1
>>> print C.x
1

Aunque normalmente se prefiere algo como esto:

class C(object):
    x = 1
    y = y

print C.x
1


Más información sobre la lista de distribución Python-es