Python 3.5¶
Abaixo está uma lista de PEPs finalizadas/aceitas para o Python 3.5, agrupadas de acordo com seu impacto no MicroPython.
Extensões à sintaxe |
Status |
|
Generalizações adicionais de desempacotamento |
Parcial |
|
Um novo operador de multiplicação de matrizes |
Completo |
|
Corrotinas com a sintaxe |
Completo |
|
Extensões e mudanças no tempo de execução |
||
Formatação com % para strings binárias |
Completo |
|
Repetição de chamadas de sistema que falham com |
Completo |
|
Mudança no tratamento de |
Completo |
|
Mudanças na biblioteca padrão |
||
|
||
|
Completo |
|
Mudanças diversas |
||
Suporte aprimorado a aplicações zip do Python |
||
Tornar o Python Launcher ciente de ambientes virtuais |
Não relevante |
|
Dicas de tipo (apenas consultivas) |
Completo [1] |
|
Eliminação de arquivos PYO |
Não relevante |
|
Reformulação do carregamento de módulos de extensão |
||
Outras Mudanças na Linguagem:
Adicionados os tratadores de erro namereplace. Os tratadores de erro backslashreplace agora funcionam com decodificação e tradução. |
|
Docstrings de propriedades agora são graváveis. Isso é especialmente útil para docstrings de collections.namedtuple() |
|
Importações circulares envolvendo importações relativas agora são suportadas. |
Novos Módulos:
Mudanças nos módulos embutidos:
A classe OrderedDict agora é implementada em C, o que a torna de 4 a 100 vezes mais rápida. |
|
As views OrderedDict.items(), OrderedDict.keys(), OrderedDict.values() agora suportam iteração com reversed(). |
|
The deque class now defines index(), insert(), and copy(), and supports the + and * operators. |
|
Docstrings produzidas por namedtuple() agora podem ser atualizadas. |
|
A classe UserString agora implementa os métodos __getnewargs__(), __rmod__(), casefold(), format_map(), isprintable() e maketrans() para corresponder aos métodos correspondentes de str. |
|
A comparação de elementos em merge() agora pode ser personalizada passando uma função key em um novo argumento nomeado opcional key, e um novo argumento nomeado opcional reverse pode ser usado para inverter a comparação de elementos |
|
Um novo método BufferedIOBase.readinto1(), que usa no máximo uma chamada aos métodos RawIOBase.read() ou RawIOBase.readinto() do fluxo bruto subjacente |
|
O decodificador JSON agora levanta JSONDecodeError em vez de ValueError para fornecer melhores informações de contexto sobre o erro. |
|
Duas novas constantes foram adicionadas ao módulo math: inf e nan. |
Completo |
Uma nova função isclose() fornece uma maneira de testar igualdade aproximada. |
|
Uma nova função gcd() foi adicionada. A função fractions.gcd() agora está descontinuada. |
|
A nova função scandir(), que retorna um iterador de objetos DirEntry, foi adicionada. |
|
A função urandom() agora usa a chamada de sistema getrandom() no Linux 3.17 ou mais recente, e getentropy() no OpenBSD 5.6 e mais recente, eliminando a necessidade de usar /dev/urandom e evitando falhas devido a um potencial esgotamento de descritores de arquivo. |
|
As novas funções get_blocking() e set_blocking() permitem obter e definir o modo de bloqueio de um descritor de arquivo (O_NONBLOCK.) |
|
Há uma nova função os.path.commonpath() que retorna o subcaminho comum mais longo de cada nome de caminho passado |
|
Referências e referências condicionais a grupos de comprimento fixo agora são permitidas em asserções de lookbehind |
|
O número de grupos de captura em expressões regulares não é mais limitado a 100. |
|
As funções sub() e subn() agora substituem grupos não correspondidos por strings 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 |
|
Funções com tempos limite agora usam um relógio monotônico, em vez de um relógio do sistema. |
|
Um novo método socket.sendfile() permite enviar um arquivo por um socket usando a função de alto desempenho os.sendfile() no UNIX, resultando em uploads de 2 a 3 vezes mais rápidos do que ao usar o simples socket.send() |
|
O método socket.sendall() não redefine mais o tempo limite do socket toda vez 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 padrão, ele é definido como SOMAXCONN ou 128, o que for menor. |
Completo |
Suporte a Memory BIO |
|
Suporte a Negociação de Protocolo de Camada de Aplicação |
|
Há um novo método SSLSocket.version() para consultar a versão de protocolo realmente em uso. |
|
A classe SSLSocket agora implementa um método SSLSocket.sendfile(). |
|
O método SSLSocket.send() agora levanta a exceção ssl.SSLWantReadError ou ssl.SSLWantWriteError em um socket não bloqueante se a operação fosse bloquear. Anteriormente, ele retornava 0. |
|
A função cert_time_to_seconds() agora interpreta o tempo de entrada como UTC e não como hora local, conforme a RFC 5280. Além disso, o valor de retorno é sempre um int. |
|
Os novos métodos SSLObject.shared_ciphers() e SSLSocket.shared_ciphers() retornam 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 não redefinem mais o tempo limite do socket toda vez que bytes são recebidos ou enviados. |
|
A função match_hostname() agora suporta 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 corrotina for criado por uma função async def. Uma função get_coroutine_wrapper() correspondente pode ser usada para obter um wrapper definido atualmente. |
|
Uma nova função is_finalizing() pode ser usada para verificar se o interpretador Python está sendo encerrado. |
|
A função monotonic() agora está sempre disponível |
|
Notas