Comprobar la clase del parametro de una funcion

Joan Ordinas jordinas en gmail.com
Mar Mayo 24 08:31:23 CEST 2005


On 5/23/05, Antonio Beamud Montero <antonio.beamud en linkend.net> wrote:
> El lun, 23-05-2005 a las 20:26 +0200, Ricardo Catalinas Jimenez
> escribió:
> 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]
>        """

Coincido en recomendar vivamente la lectura de los libros de Bertnad
Meyer. En Python puro  podemos verificar precondiciones (y condiciones
en general), con assert (de hecho igual que en C):

    def mimetodo(self, a, b):
        """
         assert isinstance(a, ClaseA)
         assert isinstance(b, ClaseB)

Si usamos "python -O' las sentencias 'assert' desaparecen, y la
variable __debug__ siempre informa de si se ha usado '-O'.

JJOR




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