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