[Python-es] como hacer __dict__[i] = x sobre una clase ??

Jose Caballero jcaballero.hep en gmail.com
Sab Jun 29 18:59:49 CEST 2013


Muchas gracias !!
Es lo que buscaba.

El día 29 de junio de 2013 12:42, Juan BC <jbc.develop en gmail.com> escribió:
> la forma correcta de hacer obj.__dict__["m"] = f es
>
> setattr(obj, "m", f)
>
> para lo mismo en una clase es
>
> setattr(C, "m", f)
>
> El día 29 de junio de 2013 13:39, Jose Caballero
> <jcaballero.hep en gmail.com> escribió:
>> Hola,
>>
>>
>>
>> como podria substituir el metodo de una clase por una funcion (no
>> estoy hablando de sobreescribir o "override")?
>>
>>
>> Por ejemplo, supongamos una clase sencilla como:
>>
>>     class C:
>>         def m(self, x):
>>              print x
>>
>>
>> y quiero substituir m() por una funcion predefinida, como
>>
>>     def f(x): print x*x
>>
>> puedo hacer
>>
>>     obj = C()
>>     obj.__dict__["m"] = f
>>
>>
>> Pero como puedo hacerlo sobre la propia clase, no sobre un objeto?
>> Hacer   C.__dict__["m"] = f    no esta permitido....
>>
>> Cualquier referencia a una web donde pueda documentarme sera mas que
>> bien acogida.
>>
>>
>>
>>
>> Muchas gracias.
>> Un saludo,
>> Jose
>> _______________________________________________
>> Python-es mailing list
>> Python-es en python.org
>> http://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>
>
>
> --
> Juan B Cabral
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/


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