Will tudo nas cordas tratar biblioteca padrão como unicode em Python 3.0?
-
01-07-2019 - |
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?
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.