¿Cómo saber si un objeto Python es una cadena?
¿Cómo puedo comprobar si un objeto Python es una cadena (ya sea normal o Unicode)?
Pitón 2
Úselo isinstance(obj, basestring)
para un objeto a probar obj
.
Documentos .
Pitón 3
En Python 3.x basestring
ya no está disponible, al igual str
que el único tipo de cadena (con la semántica de Python 2.x unicode
).
Entonces la comprobación en Python 3.x es simplemente:
isinstance(obj_to_test, str)
Esto sigue la solución de la herramienta de conversión oficial 2to3
: convertir basestring
a str
.
Pitón 2
Para comprobar si un objeto o
es un tipo de cadena de una subclase de un tipo de cadena:
isinstance(o, basestring)
porque ambos str
y unicode
son subclases de basestring
.
Para comprobar si el tipo de o
es exactamente str
:
type(o) is str
Para comprobar si o
es una instancia str
o alguna subclase de str
:
isinstance(o, str)
Lo anterior también funciona para cadenas Unicode si se reemplaza str
con unicode
.
Sin embargo, es posible que no necesite realizar ninguna verificación de tipo explícita. La "mecanografía con pato" puede satisfacer sus necesidades. Consulte http://docs.python.org/glossary.html#term-duck-typing .
Consulte también ¿Cuál es la forma canónica de verificar el tipo en Python?