¿Cómo saber si un objeto Python es una cadena?

Resuelto Matt S. asked hace 15 años • 0 respuestas

¿Cómo puedo comprobar si un objeto Python es una cadena (ya sea normal o Unicode)?

Matt S. avatar Aug 20 '09 06:08 Matt S.
Aceptado

Pitón 2

Úselo isinstance(obj, basestring)para un objeto a probar obj.

Documentos .

John Fouhy avatar Aug 19 '2009 23:08 John Fouhy

Pitón 3

En Python 3.x basestringya no está disponible, al igual strque 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 basestringa str.

Cwt avatar Oct 23 '2014 19:10 Cwt

Pitón 2

Para comprobar si un objeto oes un tipo de cadena de una subclase de un tipo de cadena:

isinstance(o, basestring)

porque ambos stry unicodeson subclases de basestring.

Para comprobar si el tipo de oes exactamente str:

type(o) is str

Para comprobar si oes una instancia stro alguna subclase de str:

isinstance(o, str)

Lo anterior también funciona para cadenas Unicode si se reemplaza strcon 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?

Matt S. avatar Aug 19 '2009 23:08 Matt S.