Comprobar la clase del parametro de una funcion

Antonio Beamud Montero antonio.beamud en linkend.net
Lun Mayo 23 20:34:44 CEST 2005


El lun, 23-05-2005 a las 20:26 +0200, Ricardo Catalinas Jimenez
escribió:
> Me ha parecido muy interesante la propuesta de los `decoradores', aunque
> es una solucion un tanto compleja.
> 
> Como ya he comentado en otro post estoy planteandome si estoy que yo
> estaba buscado es algo que merece la pena, o si por contra, python
> requiere de otra metodologia.
> 
> 
> Gracias por la informacion, investigare los `decoradoes' a ver si me
> merecen la pena.

Yo uso, tanto si es en java como en python la "programación por
contrato" (B. Meyer), haces un import contract (pycontract) y al
documentar un método, una clase o un módulo:

   def mimetodo(self, a, b):
       """
        pre:
             isinstance(a, ClaseA)
             isinstance(b, ClaseB)
        post:
            __return__ in [0,1,2,3]
       """

Y para las clases puedes usar los invariantes, con lo que detectas un
montón de bugs de forma rápida. Tu código será muchisimo más robusto.

Lo puedes desactivar cuando hayas comprobado que toda tu aplicación
funciona sin violar ningún contrato para mejorar la velocidad...
Normalmente a los 6 meses de que esté funcionando la aplicación :-)

Mejoras la legibilidad del código tanto por que no usas un motón de
clausulas if...then, como por que quedan las funciones perfectamente
documentadas por una herramienta posterior de documentación...
Cuanto más simple sea el cuerpo de una función más sencillo será
mantenerlo. 

Espero que te sirva.



------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es


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