Diferenciar variable.
Arnau Sanchez
arnau en ehas.org
Mie Nov 29 00:24:28 CET 2006
aNgel rEsendiz g. escribió:
> mmm, no se si todos se complicaron mucho o a mi se me esta escapando
> algo, pero creo que lo que quiere hacer sencillo:
>
> type(variable)
>
>>>> a='hola'
>>>> type(a)
> <type 'str'>
>>>> a=5
>>>> type(a)
> <type 'int'>
>>>>
>
> ¿no es así?
Lo siento, no he seguido los otros mensajes del hilo, así que sólo te contesto
sobre la diferencia entre isinstance y type; en un caso simple como el que
teníamos se puede hacer también con type, es indiferente, pero considera algo
más complejo, con clases derivadas:
class str2(str):
pass
s = str2("hola")
type(s) == str
False
isinstance(s, str)
True
Y como en realidad lo queríamos saber es si el objeto s se comporta como una
string, en este caso lo útil era "isinstance".
> supongo que lo que quieres hacer es verificar que se han ingresado
> solo numeros y no letras, si eso es lo que quieres, puedes hacerlo con
> una excepción:
>
> try:
> numero_capturado=int(texto_capturado)
> except ValueError:
> regañar_al_usuario()
Así es, muchas veces lo mejor es tratar de convertir el dato y capturar la
excepción, y dejarse de types e isinstances. En otras palabra: si camina como un
pato, parpa como un pato, ¡tiene que ser un pato!
http://en.wikipedia.org/wiki/Duck_typing
arnau
Más información sobre la lista de distribución Python-es