Python 3.6¶
Python 3.6 beta 1 släpptes den 12 september 2016, och en sammanfattning av de nya funktionerna finns här:
Nya syntaxfunktioner |
Status |
|
Literal stränginterpolering |
Klar |
|
Understreck i numeriska literaler |
Klar |
|
Asynkrona generatorer |
||
Syntax för variabelannoteringar (provisorisk) |
Klar |
|
Asynkrona comprehensions |
||
Nya inbyggda funktioner |
||
Bevarande av ordningen för kwargs i en funktion |
||
Enklare anpassning av klasskapande |
Delvis [1] |
|
Bevarande av definitionsordningen för klassattribut |
||
Ändringar i standardbiblioteket |
||
Disambiguering av lokal tid |
||
Tillägg av en secrets-modul till standardbiblioteket |
||
Tillägg av ett protokoll för filsystemssökvägar |
||
CPython-interna delar |
||
Lägg till en privat version i dict |
Görs inte |
|
Tillägg av ett API för utvärdering av stackramar i CPython |
||
Ändringar för Linux/Windows |
||
Gör |
||
Ändra teckenkodningen i Windows-konsolen till UTF-8 |
||
Ändra Windows filsystemskodning till UTF-8 |
||
Övriga språkändringar:
En global- eller nonlocal-sats måste nu textuellt förekomma före den första användningen av det berörda namnet i samma omfång. Tidigare gav detta en SyntaxWarning. |
|
Det är nu möjligt att sätta en specialmetod till None för att indikera att motsvarande operation inte är tillgänglig. Om en klass exempelvis sätter __iter__() till None är klassen inte itererbar. |
|
Långa sekvenser av upprepade traceback-rader förkortas nu som [Previous line repeated {count} more times] |
|
Import ger nu det nya undantaget ModuleNotFoundError när en modul inte kan hittas. Kod som för närvarande kontrollerar ImportError (i try-except) fungerar fortfarande. |
|
Klassmetoder som förlitar sig på super() utan argument fungerar nu korrekt när de anropas från metaklassmetoder under klasskapande. |
Ändringar i inbyggda moduler:
Uttömda iteratorer för array.array förblir nu uttömda även om den itererade arrayen utökas. |
|
Funktionen b2a_base64() accepterar nu ett valfritt newline-nyckelordsargument som styr om radbrytningstecknet läggs till i returvärdet |
Klar |
Den nya konstanten cmath.tau (τ) har lagts till |
|
Nya konstanter: cmath.inf och cmath.nan för att matcha math.inf och math.nan , samt även cmath.infj och cmath.nanj för att matcha det format som används av komplex repr |
|
Den nya abstrakta basklassen Collection har lagts till för att representera storlekssatta itererbara behållarklasser |
|
Den nya abstrakta basklassen Reversible representerar itererbara klasser som även tillhandahåller metoden __reversed__(). |
|
Den nya abstrakta basklassen AsyncGenerator representerar asynkrona generatorer. |
|
Funktionen namedtuple() accepterar nu ett valfritt nyckelordsargument module, som, när det anges, används för attributet __module__ hos den returnerade namngivna tupelklassen. |
|
Argumenten verbose och rename för namedtuple() är nu enbart nyckelordsbaserade. |
|
Rekursiva collections.deque-instanser kan nu picklas. |
|
Hashfunktionerna BLAKE2 lades till i modulen. blake2b() och blake2s() är alltid tillgängliga och stöder hela funktionsuppsättningen i BLAKE2. |
|
Hashfunktionerna SHA-3 sha3_224(), sha3_256(), sha3_384(), sha3_512(), och SHAKE-hashfunktionerna shake_128() och shake_256() lades till. |
|
Den lösenordsbaserade nyckelhärledningsfunktionen scrypt() är nu tillgänglig med OpenSSL 1.1.0 och nyare. |
|
json.load() och json.loads() stöder nu binär indata. Kodad JSON bör representeras med antingen UTF-8, UTF-16 eller UTF-32. |
|
Den nya konstanten math.tau (τ) har lagts till |
Klar |
En ny metod close() gör det möjligt att uttryckligen stänga en scandir()-iterator. Iteratorn scandir() stöder nu protokollet för kontexthanterare. |
|
På Linux blockerar os.urandom() nu tills systemets urandom-entropipool har initierats för att öka säkerheten. |
|
Linux-systemanropet getrandom() (hämta slumpmässiga byte) exponeras nu som den nya funktionen os.getrandom(). |
|
Lade till stöd för modifierarspann i reguljära uttryck. Exempel: ’(?i:p)ython’ matchar ’python’ och ’Python’, men inte ’PYTHON’; ’(?i)g(?-i:v)r’ matchar ’GvR’ och ’gvr’, men inte ’GVR’. |
|
Grupper i match-objekt kan nu nås via __getitem__, vilket motsvarar group(). Så mo[’name’] motsvarar nu mo.group(’name’). |
|
Match-objekt stöder nu index-liknande objekt som gruppindex. |
|
Funktionen ioctl() stöder nu kontrollkoden SIO_LOOPBACK_FAST_PATH. |
|
Konstanterna SO_DOMAIN , SO_PROTOCOL, SO_PEERSEC och SO_PASSSEC för getsockopt() stöds nu. |
|
setsockopt() stöder nu formen setsockopt(level, optname, None, optlen: int). |
|
Socket-modulen stöder nu adressfamiljen AF_ALG för att samverka med Linuxkärnans krypto-API. ALG_, SOL_ALG och sendmsg_afalg() lades till. |
|
De nya Linux-konstanterna TCP_USER_TIMEOUT och TCP_CONGESTION lades till. |
|
ssl stöder OpenSSL 1.1.0. Den lägsta rekommenderade versionen är 1.0.2. |
|
3DES har tagits bort från standarduppsättningarna av chiffer och chifferuppsättningarna ChaCha20 Poly1305 har lagts till. |
|
SSLContext har bättre standardkonfiguration för alternativ och chiffer. |
|
En SSL-session kan kopieras från en anslutning på klientsidan till en annan med den nya klassen SSLSession. Återupptagande av TLS-sessioner kan påskynda den inledande handskakningen, minska latensen och förbättra prestandan. |
|
Den nya metoden get_ciphers() kan användas för att hämta en lista över aktiverade chiffer i prioritetsordning. |
|
Alla konstanter och flaggor har konverterats till IntEnum och IntFlags. |
|
Specifika TLS-protokoll för server- och klientsidan för SSLContext lades till. |
|
Lade till SSLContext.post_handshake_auth för att aktivera och ssl.SSLSocket.verify_client_post_handshake() för att initiera autentisering efter handskakning i TLS 1.3. |
|
stöder nu IEEE 754-flyttal med halv precision via formatspecificeraren ’e’. |
|
Den nya funktionen getfilesystemencodeerrors() returnerar namnet på det felläge som används vid konvertering mellan Unicode-filnamn och byte-filnamn. |
|
Funktionerna compress() och decompress() accepterar nu nyckelordsargument |
|
Anteckningar