Comprobar la clase del parametro de una funcion

Xavier Noria fxn en hashref.com
Lun Mayo 23 18:12:16 CEST 2005


On May 23, 2005, at 17:54, Ricardo Catalinas Jimenez wrote:


> Cuando me referia a hacer la comprobacion desde el principio de la
> llamada de la funcion me referia a hacerlo de un modo mas  
> implicito, ya
> que con este metodo tendria que comprobar parametro a parametro sus
> tipos para ver si tienen el adecuado. Ademas de que la robustez del
> programa deberia estar implementada en las propias funciones y no que
> uno tenga que esta siempre pendiente de estos pormenores.
>

Python es un lenguaje dinamico, en las signaturas no se declaran  
tipos. No hay mecanismos estaticos para que se checkeen los tipos  
automaticamente como hace un compilador de C ya que estos no van en  
el codigo.

Piensa que en un lenguaje dinamico todo esta en el aire, la  
definicion misma de una clase puede ser modificada en tiempo de  
ejecucion, de manera que en tiempo de compilacion aun sabiendo de que  
tipo es un objeto ni siquiera se conoceria su interfaz!


> Como informacion adicioanl, decir que este tipo de comprobacion la veo
> implementada en las propias bibliotecas de funcoines de Python.  
> Como por
> ejemplo la rutina `append' del modulo `string':
>
> --- code ---
> import string
>
> # declaramos un `int'
> x = 1
> x.append("nuevo_elemento")
>
> # aqui se nos produce un error como este:
> Traceback (most recent call last):
>   File "<stdin>", line 1, in ?
> AttributeError: 'int' object has no attribute 'append'
>

Eso se hace en runtime, y lo que se comprueba es si en ese mismo  
momento tal objeto responde a tal metodo. Esa comprobacion la hace el  
interprete automaticamente, el programador no necesita hacer nada  
para que la comprobacion se efectue, ni con tipos definidos por el  
mismo, va solo.

Por el tipo de dudas que tienes, sabes programacion orientada a objetos?

-- fxn


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