Derivacion de tipos, interceptar operaciones

Oswaldo Hernández listas en soft-com.es
Vie Mar 14 18:43:40 CET 2008


Hola,

Estoy intentando manipular las operaciones sobre tipos base utilizando __getattribute__

class Entero(int):
     def __getattribute__(self, attr):
         print "Interceptado:", attr
         return super(Entero, self).__getattribute__(attr)


Si utilizo la llamada explicita al metodo si se intercepta:

>>> e = Entero(300)
>>> e.__add__(5)
Interceptado: __add__
305
>>>

Pero si utilizo los operadores, el método no es interceptado:

>>> e + 5
305
>>>

Segun he entendido de la documentación, cuando se utilizan los operadores +, -, etc .. se ejecutan
las funciones correspondientes __add__, __sub__, ..

¿Habria alguna forma de interceptar estas operaciones cuando se utilizan operadores?

-- 
*****************************************
Oswaldo Hernández
oswaldo (@) soft-com (.) es
*****************************************
PD:
Antes de imprimir este mensaje, asegúrese de que es necesario.
El medio ambiente está en nuestra mano.
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





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