Esta es una sección de Dive Into Python 3 respecto a cadenas:¿Los objetos de bytes de Python también se conocen como cadenas?
En Python 3, todas las cadenas son secuencias de caracteres Unicode. No existe una cadena de Python codificada en utf-8, o una cadena de Python codificada como CP-1252. "¿Es esta cadena utf-8?" Es una pregunta inválida. utf-8 es una forma de codificar caracteres como una secuencia de bytes. Si desea tomar una cadena y convertirla en una secuencia de bytes en una determinada codificación de caracteres, Python 3 puede ayudarlo con eso. Si desea tomar una secuencia de bytes y convertirla en una cadena, Python 3 también puede ayudarlo. Bytes no son personajes; los bytes son bytes Los personajes son una abstracción. Una cadena es una secuencia de esas abstracciones.
El día de hoy he utilizado el módulo de hashlib
y leer el texto de ayuda para md5
que dice:
devolver un nuevo objeto hash MD5; opcionalmente inicializado con una cadena.
Bueno, no acepta una string
- Acepta un objeto bytes
.
Quizás estoy leyendo demasiado en esto, pero ¿no tendría más sentido si el texto de ayuda indicara que se debe usar un bytes
en su lugar? ¿O hay personas que usan el mismo nombre para cadenas y bytes?
¿Qué versión de los documentos de Python estaba mirando? 2.7 no hace la distinción 3k necesaria (obviamente jeje), pero los 3k documentos que tengo sí lo hacen. (Por cierto, un fan de LOK? :)) – Skurmedel
No recuerdo la versión exacta ahora, podría ser apilada incluso ... 3 algo. LOK rock;) – roqvist