Foros del Web » Programando para Internet » Python »

Cómo capturo el tipo de CUALQUIER variable?

Estas en el tema de Cómo capturo el tipo de CUALQUIER variable? en el foro de Python en Foros del Web. Hola, no comprendo por que no me retorna "SISTEMA" o "ENTORNO"... Código: print type(sys) Alguien sabe cómo puedo tomar el tipo de las variables?...
  #1 (permalink)  
Antiguo 10/09/2013, 20:42
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Cómo capturo el tipo de CUALQUIER variable?

Hola,

no comprendo por que no me retorna "SISTEMA" o "ENTORNO"...
Código:
print type(sys)
Alguien sabe cómo puedo tomar el tipo de las variables?
  #2 (permalink)  
Antiguo 11/09/2013, 04:02
Avatar de TSG
TSG
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 373
Antigüedad: 10 años, 7 meses
Puntos: 9
Respuesta: Cómo capturo el tipo de CUALQUIER variable?

Te refieres a esto:

Código:
hola = "adios"
Código:
type (hola)
Y ya al darle enter se te muestra:

Código:
<type ´str´>

Osea igual una variable string, si pones de otro tipo la variable se te mostrará.
  #3 (permalink)  
Antiguo 11/09/2013, 04:09
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Respuesta: Cómo capturo el tipo de CUALQUIER variable?

Cita:
Iniciado por TSG Ver Mensaje
si pones de otro tipo la variable se te mostrará.
Gracias TSG.

Y por que no sucede con esta lista, o diccionario:

print type(sys)

?

es claro que mas arriba he colocado

import os

Imprime tu mismo:

print os.path.split(__file__)

sí sale el PATH, luego qué es os?
lista, diccionario, tupla?

(sí, estoy en un [archivo.py])
  #4 (permalink)  
Antiguo 11/09/2013, 04:24
Avatar de TSG
TSG
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 373
Antigüedad: 10 años, 7 meses
Puntos: 9
Respuesta: Cómo capturo el tipo de CUALQUIER variable?

Exactamente que intentas hacer... mostrar path?.

Mira prueba esto haber si es lo que necesitas:

Código:
import sys
Código:
print sys.path
Si no es asín podrías darme un poco más de información por favor.
  #5 (permalink)  
Antiguo 11/09/2013, 07:05
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Respuesta: Cómo capturo el tipo de CUALQUIER variable?

Cita:
Iniciado por TSG Ver Mensaje
Exactamente que intentas hacer... mostrar path?
no TSG, lo que necesito es EL TIPO de esa variable.

Gracias.
  #6 (permalink)  
Antiguo 11/09/2013, 08:16
 
Fecha de Ingreso: enero-2012
Ubicación: Buenos Aires
Mensajes: 745
Antigüedad: 12 años, 3 meses
Puntos: 35
Respuesta: Cómo capturo el tipo de CUALQUIER variable?

Si lo que necesitas es "EL TIPO" de esa variable (path) simplemente:

Código Python:
Ver original
  1. print type(sys.path)

sys es un módulo, no una lista, diccionario o tupla, por lo que al hacer type(sys) siempre va a decir "(type 'module)".

Si lo que quieres es una lista con las funciones y objetos del módulo con sus respectivos tipos podes hacer:

Código Python:
Ver original
  1. import sys
  2. import inspect
  3. for name, value in inspec.getmembers(sys):
  4.     print name, value, type(value)

  #7 (permalink)  
Antiguo 11/09/2013, 08:24
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Respuesta: Cómo capturo el tipo de CUALQUIER variable?

Cita:
Iniciado por carbon Ver Mensaje
Si lo que necesitas es "EL TIPO"
Gracias Carbón.

Sí, eso es lo que requiero. Sin embargo, pego exactamente esto en mi file.py:
Código:
import sys
import inspect
for name, value in inspec.getmembers(sys):
	print name, value, type(value)
Y el script no funciona.
Infortunadamente tampóco he logrado MOSTRAR los errores.
(http://www.forosdelweb.com/f130/pued...t-web-1070983/)
  #8 (permalink)  
Antiguo 11/09/2013, 08:26
 
Fecha de Ingreso: enero-2012
Ubicación: Buenos Aires
Mensajes: 745
Antigüedad: 12 años, 3 meses
Puntos: 35
Respuesta: Cómo capturo el tipo de CUALQUIER variable?

Me faltó una "t":

Código Python:
Ver original
  1. import sys
  2. import inspect
  3. for name, value in inspect.getmembers(sys):
  4.     print name, value, type(value)

No puedo editar lo anterior

Y en todo caso para capturar el error a grandes rasgos:

Código Python:
Ver original
  1. try:
  2.     import sys
  3.     import inspect
  4.     for name, value in inspec.getmembers(sys):
  5.         print name, value, type(value)
  6. except Exception as e:
  7.     print e # name 'inspec' is not defined
  #9 (permalink)  
Antiguo 11/09/2013, 08:33
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Cómo capturo el tipo de CUALQUIER variable?

type devuelve el tipo de la variable.

Pero recuerda que en python todo es un objeto. Y un objeto no necesariamente es de un solo tipo. ¿Que tal si es una instancia que hereda de diferentes clases? En ese caso type no te va a servir de mucho.

Si lo quieres es compararlo con algún otro tipo usa isinstance.

Por ejemplo las clases str y unicode heredan de basestring.

Con type
Código Python:
Ver original
  1. type('') == str # True
  2. type('') == unicode # False
  3. type('') == basestring # False
  4.  
  5. type(u'') == str # False
  6. type(u'') == unicode # True
  7. type(u'') == basestring # False

Con isinstance
Código Python:
Ver original
  1. isinstance('', str) # True
  2. isinstance('', unicode) # False
  3. isinstance('', basetring) # True
  4.  
  5. isinstance(u'', str) # False
  6. isinstance(u'', unicode) # True
  7. isinstance(u'', basetring) # True

Por ultimo no tengo idea para que necesitas saber el tipo. Python no es débilmente tipado como php. Entonces cosas como.

Código Python:
Ver original
  1. 2 == '2'
Siempre te darán falso.
  #10 (permalink)  
Antiguo 11/09/2013, 15:15
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Respuesta: Cómo capturo el tipo de CUALQUIER variable?

Cita:
Iniciado por carbon Ver Mensaje
Código Python:
Ver original
  1. import sys
  2. import inspect
  3. for name, value in inspect.getmembers(sys):
  4.     print name, value, type(value)
Uff!, Excelente!.
Me ha sido de MUCHA utilidad Carbón muchas gracias.

:)

Gracias por tu tiempo razpeitia, muy buenos ejemplos.

Etiquetas: tipo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:06.