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(). | |
A classe deque agora define index(), insert() e copy(), e suporta os operadores + e *. | |
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