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