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