Derivacion de tipos, interceptar operaciones

Chema Cortes pych3m4 en gmail.com
Lun Mar 17 12:43:02 CET 2008


El 2008/3/14, Oswaldo Hernández <listas en soft-com.es> escribió:

>  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?

El método __getattribute__ sólo se invoca en la búsqueda "explícita"
de atributos, lo cuál ocurre al usa el operador '.' (punto) o con la
función getattr(). Para la búsqueda "implícita" de atributos, el
intérprete python, por optimizar, se las apaña para evitar usar los
métodos de la instancia, por lo que no resulta posible interceptar
esta búsqueda. Sólo usará los __getattr__ y __getattribute__ si no
queda más remedio.

No hay que irse a las operaciones aritméticas para comprobarlo:
tampoco se puede interceptar el acceso a '__init__' ni '__new__'. Como
mucho se puede suplantar estos métodos por otros, pero resulta
imposible crear un "accesor" genérico que funcione completamente.
Digamos que aún queda un pequeño trecho para unificar tipos y clases.
_______________________________________________
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