Comprobar la clase del parametro de una funcion

Antonio Castro acastro en ciberdroide.com
Lun Mayo 23 20:44:33 CEST 2005


On Mon, 23 May 2005, Ricardo Catalinas Jimenez wrote:

> Vengo de saber programar C, y con la costumbre de hacer programas
> robustos, me gustatia saber como puedo comprobar a que clase pertenece
> el parametro con el que se llama a una funcion desde el principio.
>
> Cuando me refiero a clase, me refiero a las clases fundamentales de
> python como: int, long, string ...

Si te preocupa recibir un objeto que pueda dar algún problema deberás
recurrir a usar try: y en caso de error gestionalo como más te convenga.

En python no tiene mucho sentido imponer un tipo de objeto como parametro.

Permiteme un ejemplo. Seguro que hay ejemplos mejores pero yo tambien vengo
de C y no llevo mucho tiempo con Python.

La funcion sort() la puedes aplicar a una lista y una lista en python
puede tener cualquier clase de elementos.

x=['fgruhygte', 'jkju', 7, 9.00, 5, 1, 99, [8,'aa'], [3,'aa'], [1,'zz'],
[3,'kk'] ]

x.sort()

print x

No deja de ser curioso el resultado.

[1, 5, 7, 9.0, 99, [1, 'zz'], [3, 'aa'], [3, 'kk'], [8, 'aa'], 'fgruhygte',
'jkju']

Realmente no estas obligado a usar sort() con una mezcla heterogenea de
cosas pero tienes la posibilidad de usarlo. Parece rebuscado pero las
oportunidades de ahorrase un montón de lineas de código aparecen más de
una vez con este tipo de cosas.

Yo necesité ordenar una lista de palabras por su longitud. Probe a ordenar
una lista de listas formada por lonjitud y cadena y funcionó como yo quería.



-- 
Un saludo
Antonio Castro

       /\     /\
         \\W//
        _|0 0|_
+-oOOO-(___o___)-OOOo---------------------+
| . . . . U U . Antonio Castro Snurmacher |
| . . . . . . . acastro en ciberdroide.com   |
+()()()---------()()()--------------------+




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