Python 3.5¶
Segue-se uma lista de PEPs finalizadas/aceites para o Python 3.5, agrupadas pelo seu impacto no MicroPython.
Extensões à sintaxe |
Estado |
|
Generalizações adicionais de desempacotamento |
Parcial |
|
Um novo operador de multiplicação matricial |
Completo |
|
Corrotinas com sintaxe |
Completo |
|
Extensões e alterações ao tempo de execução |
||
Formatação % para cadeias binárias |
Completo |
|
Repetição de chamadas de sistema que falham com |
Completo |
|
Alterar o tratamento de |
Completo |
|
Alterações à biblioteca padrão |
||
|
||
|
Completo |
|
Alterações diversas |
||
Suporte melhorado para aplicações zip em Python |
||
Tornar o Python Launcher ciente de ambientes virtuais |
Não relevante |
|
Sugestões de tipo (apenas orientativas) |
Completo [1] |
|
Eliminação dos ficheiros PYO |
Não relevante |
|
Redesenhar o carregamento de módulos de extensão |
||
Outras alterações à linguagem:
Foi adicionado o gestor de erros namereplace. O gestor de erros backslashreplace funciona agora também com descodificação e tradução. |
|
As docstrings de propriedades são agora editáveis. Isto é especialmente útil para as docstrings de collections.namedtuple() |
|
As importações circulares envolvendo importações relativas são agora suportadas. |
Novos módulos:
Alterações aos módulos incorporados:
A classe OrderedDict está agora implementada em C, tornando-a de 4 a 100 vezes mais rápida. |
|
As vistas OrderedDict.items(), OrderedDict.keys(), OrderedDict.values() suportam agora iteração com reversed(). |
|
The deque class now defines index(), insert(), and copy(), and supports the + and * operators. |
|
As docstrings produzidas por namedtuple() podem agora ser atualizadas. |
|
A classe UserString implementa agora os métodos __getnewargs__(), __rmod__(), casefold(), format_map(), isprintable() e maketrans() para corresponder aos métodos equivalentes de str. |
|
A comparação de elementos em merge() pode agora ser personalizada passando uma função key num novo argumento opcional de palavra-chave key, e um novo argumento opcional de palavra-chave reverse pode ser usado para inverter a comparação de elementos |
|
Um novo método BufferedIOBase.readinto1() que utiliza no máximo uma chamada aos métodos RawIOBase.read() ou RawIOBase.readinto() do stream bruto subjacente |
|
O descodificador JSON levanta agora JSONDecodeError em vez de ValueError para fornecer melhores informações de contexto sobre o erro. |
|
Foram adicionadas duas novas constantes ao módulo math: inf e nan. |
Completo |
Uma nova função isclose() fornece uma forma de testar a igualdade aproximada. |
|
Foi adicionada uma nova função gcd(). A função fractions.gcd() está agora depreciada. |
|
Foi adicionada a nova função scandir() que devolve um iterador de objetos DirEntry. |
|
A função urandom() utiliza agora a syscall getrandom() no Linux 3.17 ou mais recente, e getentropy() no OpenBSD 5.6 e mais recente, eliminando a necessidade de utilizar /dev/urandom e evitando falhas devido ao potencial esgotamento de descritores de ficheiro. |
|
As novas funções get_blocking() e set_blocking() permitem obter e definir o modo de bloqueio de um descritor de ficheiro (O_NONBLOCK.) |
|
Existe uma nova função os.path.commonpath() que devolve o sub-caminho comum mais longo de cada nome de caminho passado |
|
As referências e referências condicionais a grupos de comprimento fixo são agora permitidas em asserções lookbehind |
|
O número de grupos de captura em expressões regulares já não está limitado a 100. |
|
As funções sub() e subn() substituem agora os grupos não correspondidos por cadeias vazias em vez de levantar uma exceção. |
|
As exceções re.error têm novos atributos, msg, pattern, pos, lineno e colno, que fornecem melhores informações de contexto sobre o erro |
|
As funções com tempos limite utilizam agora um relógio monótono em vez de um relógio de sistema. |
|
Um novo método socket.sendfile() permite enviar um ficheiro através de um socket utilizando a função de alto desempenho os.sendfile() no UNIX, resultando em carregamentos de 2 a 3 vezes mais rápidos do que ao utilizar o simples socket.send() |
|
O método socket.sendall() já não repõe o tempo limite do socket sempre que bytes são recebidos ou enviados. O tempo limite do socket é agora a duração total máxima para enviar todos os dados. |
|
O argumento backlog do método socket.listen() é agora opcional. Por omissão é definido como SOMAXCONN ou 128, o que for menor. |
Completo |
Suporte a BIO de memória |
|
Suporte a negociação de protocolo de camada de aplicação (ALPN) |
|
Existe um novo método SSLSocket.version() para consultar a versão efetiva do protocolo em uso. |
|
A classe SSLSocket implementa agora um método SSLSocket.sendfile(). |
|
O método SSLSocket.send() levanta agora a exceção ssl.SSLWantReadError ou ssl.SSLWantWriteError num socket não bloqueante se a operação bloquearia. Anteriormente, devolvia 0. |
|
A função cert_time_to_seconds() interpreta agora o tempo de entrada como UTC e não como hora local, de acordo com a RFC 5280. Adicionalmente, o valor de retorno é sempre um int. |
|
Os novos métodos SSLObject.shared_ciphers() e SSLSocket.shared_ciphers() devolvem a lista de cifras enviadas pelo cliente durante o handshake. |
|
Os métodos SSLSocket.do_handshake(), SSLSocket.read(), SSLSocket.shutdown() e SSLSocket.write() da classe SSLSocket já não repõem o tempo limite do socket sempre que bytes são recebidos ou enviados. |
|
A função match_hostname() suporta agora a correspondência de endereços IP. |
|
Uma nova função set_coroutine_wrapper() permite definir um gancho global que será chamado sempre que um objeto de corrotina for criado por uma função async def. A função correspondente get_coroutine_wrapper() pode ser utilizada para obter o wrapper atualmente definido. |
|
Uma nova função is_finalizing() pode ser utilizada para verificar se o interpretador Python está a encerrar. |
|
A função monotonic() está agora sempre disponível |
|
Notas