Pergunta

Estou um pouco confuso sobre como a biblioteca padrão irá se comportar agora que Python (de 3,0) é baseado em unicode. Will módulos, tais como CGI e usar urllib strings unicode ou eles vão usar o tipo dos novos bytes 'e apenas fornecer dados codificados?

Foi útil?

Solução

Logicamente um monte de coisas como mensagens MIME-codificados mail, URLs, documentos XML, e assim por diante deve ser retornado como bytes não strings. Isso pode causar alguma consternação como as bibliotecas começam a ser pregado para baixo para Python 3 e as pessoas descobrir que eles têm que ser mais conscientes das conversões bytes / string do que eram para str / unicode ...

Outras dicas

Uma das grandes coisas sobre esta questão (e Python em geral) é que você pode apenas mexer no interpretador! Python 3.0 RC1 está disponível para download .

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

Haverá uma dança de dois passos aqui. Consulte Python 3000 e Você .

Passo 1 é obter rodando sob 3.0.

Passo 2 é repensar do seu API para, talvez, fazer algo mais sensato.

O mais provável é claro é que as bibliotecas irá mudar para strings unicode para permanecer mais compatível possível com a forma como eles costumavam trabalho.

Então, talvez, alguns vão mudar para bytes para mais propriamente implementar os padrões RFC para os vários protocolos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top