Python 3.6¶
A versão beta 1 do Python 3.6 foi lançada a 12 de setembro de 2016 e um resumo das novas funcionalidades pode ser encontrado aqui:
Novas Funcionalidades de Sintaxe |
Estado |
|
Formatação de Strings Literais |
Completo |
|
Sublinhados em Literais Numéricos |
Completo |
|
Geradores Assíncronos |
||
Sintaxe para Anotações de Variáveis (provisional) |
Completo |
|
Compreensões Assíncronas |
||
Novas Funcionalidades Incorporadas |
||
Preservação da ordem de kwargs numa função |
||
Personalização mais simples da criação de classes |
Parcial [1] |
|
Preservação da Ordem de Definição de Atributos de Classe |
||
Alterações na Biblioteca Standard |
||
Desambiguação da Hora Local |
||
Adição de um Módulo Secrets à Biblioteca Standard |
||
Adição de um protocolo de caminho do sistema de ficheiros |
||
Internos do CPython |
||
Adicionar uma versão privada ao dict |
Não será implementado |
|
Adição de uma API de avaliação de fotogramas ao CPython |
||
Alterações Linux/Windows |
||
Tornar |
||
Alterar a codificação da consola Windows para UTF-8 |
||
Alterar a codificação do sistema de ficheiros Windows para UTF-8 |
||
Outras Alterações de Linguagem:
Uma instrução global ou nonlocal deve agora aparecer textualmente antes do primeiro uso do nome afetado no mesmo âmbito. Anteriormente, isto gerava um SyntaxWarning. |
|
Agora é possível definir um método especial como None para indicar que a operação correspondente não está disponível. Por exemplo, se uma classe definir __iter__() como None, a classe não é iterável. |
|
Longas sequências de linhas repetidas de traceback são agora abreviadas como [Previous line repeated {count} more times] |
|
O import agora lança a nova exceção ModuleNotFoundError quando não consegue encontrar um módulo. O código que atualmente verifica ImportError (em try-except) continuará a funcionar. |
|
Métodos de classe que dependem de super() sem argumentos funcionarão agora corretamente quando chamados a partir de métodos de metaclasse durante a criação da classe. |
Alterações nos módulos incorporados:
Os iteradores esgotados de array.array manter-se-ão agora esgotados mesmo que o array iterado seja estendido. |
|
A função b2a_base64() aceita agora um argumento de palavra-chave opcional newline para controlar se o caráter de nova linha é adicionado ao valor de retorno |
Completo |
A nova constante cmath.tau (τ) foi adicionada |
|
Novas constantes: cmath.inf e cmath.nan para corresponder a math.inf e math.nan, e também cmath.infj e cmath.nanj para corresponder ao formato utilizado pelo repr de complexos |
|
A nova classe base abstrata Collection foi adicionada para representar classes de contentores iteráveis de tamanho definido |
|
A nova classe base abstrata Reversible representa classes iteráveis que também fornecem o método __reversed__(). |
|
A nova classe base abstrata AsyncGenerator representa geradores assíncronos. |
|
A função namedtuple() aceita agora um argumento de palavra-chave opcional module, que, quando especificado, é usado para o atributo __module__ da classe de tuplo nomeado retornada. |
|
Os argumentos verbose e rename para namedtuple() são agora exclusivamente de palavra-chave. |
|
Instâncias recursivas de collections.deque podem agora ser serializadas com pickle. |
|
As funções de hash BLAKE2 foram adicionadas ao módulo. blake2b() e blake2s() estão sempre disponíveis e suportam o conjunto completo de funcionalidades do BLAKE2. |
|
As funções de hash SHA-3 sha3_224(), sha3_256(), sha3_384(), sha3_512(), e as funções de hash SHAKE shake_128() e shake_256() foram adicionadas. |
|
A função de derivação de chave baseada em palavra-passe scrypt() está agora disponível com OpenSSL 1.1.0 e versões posteriores. |
|
json.load() e json.loads() suportam agora entrada binária. O JSON codificado deve ser representado utilizando UTF-8, UTF-16 ou UTF-32. |
|
A nova constante math.tau (τ) foi adicionada |
Completo |
Um novo método close() permite fechar explicitamente um iterador scandir(). O iterador scandir() suporta agora o protocolo de gestor de contexto. |
|
No Linux, os.urandom() bloqueia agora até que o conjunto de entropia urandom do sistema seja inicializado para aumentar a segurança. |
|
A chamada de sistema Linux getrandom() (obter bytes aleatórios) está agora exposta como a nova função os.getrandom(). |
|
Adicionado suporte a intervalos de modificadores em expressões regulares. Exemplos: “(?i:p)ython” corresponde a “python” e “Python”, mas não a “PYTHON”; “(?i)g(?-i:v)r” corresponde a “GvR” e “gvr”, mas não a “GVR”. |
|
Os grupos de objetos Match podem ser acedidos por __getitem__, que é equivalente a group(). Assim, mo[“name”] é agora equivalente a mo.group(“name”). |
|
Os objetos Match suportam agora objetos semelhantes a índices como índices de grupos. |
|
A função ioctl() suporta agora o código de controlo SIO_LOOPBACK_FAST_PATH. |
|
As constantes getsockopt() SO_DOMAIN, SO_PROTOCOL, SO_PEERSEC e SO_PASSSEC são agora suportadas. |
|
setsockopt() suporta agora a forma setsockopt(level, optname, None, optlen: int). |
|
O módulo socket suporta agora a família de endereços AF_ALG para comunicar com a API criptográfica do kernel Linux. ALG_, SOL_ALG e sendmsg_afalg() foram adicionados. |
|
As novas constantes Linux TCP_USER_TIMEOUT e TCP_CONGESTION foram adicionadas. |
|
ssl suporta OpenSSL 1.1.0. A versão mínima recomendada é 1.0.2. |
|
3DES foi removido dos conjuntos de cifras predefinidos e foram adicionados conjuntos de cifras ChaCha20 Poly1305. |
|
SSLContext tem uma configuração predefinida melhorada para opções e cifras. |
|
As sessões SSL podem ser copiadas de uma ligação do lado do cliente para outra com a nova classe SSLSession. A retoma de sessões TLS pode acelerar o handshake inicial, reduzir a latência e melhorar o desempenho. |
|
O novo método get_ciphers() pode ser usado para obter uma lista de cifras ativas por ordem de prioridade. |
|
Todas as constantes e flags foram convertidas para IntEnum e IntFlags. |
|
Foram adicionados protocolos TLS específicos para o lado servidor e cliente para SSLContext. |
|
Adicionado SSLContext.post_handshake_auth para ativar e ssl.SSLSocket.verify_client_post_handshake() para iniciar a autenticação pós-handshake TLS 1.3. |
|
suporta agora floats de meia precisão IEEE 754 através do especificador de formato “e”. |
|
A nova função getfilesystemencodeerrors() retorna o nome do modo de erro usado para converter entre nomes de ficheiros Unicode e bytes. |
|
As funções compress() e decompress() aceitam agora argumentos de palavra-chave |
|
Notas