Pregunta

Estoy un poco confundido acerca de cómo se comportará la biblioteca estándar ahora que Python (desde 3.0) está basado en Unicode.¿Los módulos como CGI y urllib usarán cadenas Unicode o usarán el nuevo tipo 'bytes' y solo proporcionarán datos codificados?

¿Fue útil?

Solución

Lógicamente, muchas cosas como mensajes de correo codificados en MIME, URL, documentos XML, etc., deberían devolverse como bytes no cuerdas.Esto podría causar cierta consternación a medida que las bibliotecas comiencen a definirse para Python 3 y la gente descubra que tiene que ser más consciente de las bytes/string conversiones que para str/unicode ...

Otros consejos

¡Una de las mejores cosas de esta pregunta (y de Python en general) es que puedes jugar con el intérprete! Python 3.0 rc1 ya está disponible para descargar.

>>> import urllib.request
>>> fh = urllib.request.urlopen('http://www.python.org/')
>>> print(type(fh.read(100)))
<class 'bytes'>

Aquí habrá un baile de dos pasos.Ver Python 3000 y usted.

El paso 1 es comenzar a ejecutar la versión 3.0.

El paso 2 es repensar sus API para, tal vez, hacer algo más sensato.

Lo más probable es que las bibliotecas cambien a cadenas Unicode para seguir siendo lo más compatibles posible con su forma de trabajar.

Entonces, tal vez, algunos cambien a bytes para implementar más adecuadamente los estándares RFC para los distintos protocolos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top