Python 3.6¶
Python 3.6 beta 1 werd uitgebracht op 12 september 2016, en een samenvatting van de nieuwe functies is hier te vinden:
Nieuwe syntaxfuncties |
Status |
|
Letterlijke tekenreeksopmaak |
Voltooid |
|
Underscores in numerieke literals |
Voltooid |
|
Asynchrone generators |
||
Syntax voor variabele-annotaties (voorlopig) |
Voltooid |
|
Asynchrone comprehensions |
||
Nieuwe ingebouwde functies |
||
Behoud van de volgorde van kwargs in een functie |
||
Eenvoudigere aanpassing van klasse-aanmaak |
Gedeeltelijk [1] |
|
Behoud van de definitievolgorde van klasse-attributen |
||
Wijzigingen in de standaardbibliotheek |
||
Lokale-tijd-disambiguatie |
||
Een secrets-module toevoegen aan de standaardbibliotheek |
||
Een bestandssysteempad-protocol toevoegen |
||
CPython-interne werking |
||
Een privéversie toevoegen aan dict |
Wordt niet gedaan |
|
Een frame-evaluatie-API toevoegen aan CPython |
||
Wijzigingen voor Linux/Windows |
||
|
||
De Windows-consolecodering wijzigen naar UTF-8 |
||
De Windows-bestandssysteemcodering wijzigen naar UTF-8 |
||
Overige taalwijzigingen:
Een global- of nonlocal-statement moet nu tekstueel vóór het eerste gebruik van de betreffende naam in dezelfde scope verschijnen. Voorheen was dit een SyntaxWarning. |
|
Het is nu mogelijk om een speciale methode op None in te stellen om aan te geven dat de bijbehorende bewerking niet beschikbaar is. Als een klasse bijvoorbeeld __iter__() op None instelt, is de klasse niet itereerbaar. |
|
Lange reeksen herhaalde traceback-regels worden nu afgekort als [Previous line repeated {count} more times] |
|
Import roept nu de nieuwe uitzondering ModuleNotFoundError op wanneer er geen module kan worden gevonden. Code die momenteel op ImportError controleert (in try-except) blijft werken. |
|
Klassemethoden die afhankelijk zijn van een argumentloze super() werken nu correct wanneer ze worden aangeroepen vanuit metaclass-methoden tijdens het aanmaken van een klasse. |
Wijzigingen in ingebouwde modules:
Uitgeputte iterators van array.array blijven nu uitgeput, zelfs als de geïtereerde array wordt uitgebreid. |
|
De functie b2a_base64() accepteert nu een optioneel newline-keywordargument om te bepalen of het newline-teken aan de retourwaarde wordt toegevoegd |
Voltooid |
De nieuwe constante cmath.tau (τ) is toegevoegd |
|
Nieuwe constanten: cmath.inf en cmath.nan om overeen te komen met math.inf en math.nan, en ook cmath.infj en cmath.nanj om overeen te komen met de opmaak die door complex repr wordt gebruikt |
|
De nieuwe abstracte basisklasse Collection is toegevoegd om iterabele containerklassen met een grootte te vertegenwoordigen |
|
De nieuwe abstracte basisklasse Reversible vertegenwoordigt iterabele klassen die ook de methode __reversed__() bieden. |
|
De nieuwe abstracte basisklasse AsyncGenerator vertegenwoordigt asynchrone generators. |
|
De functie namedtuple() accepteert nu een optioneel keywordargument module, dat, indien opgegeven, wordt gebruikt voor het attribuut __module__ van de geretourneerde named-tuple-klasse. |
|
De argumenten verbose en rename voor namedtuple() zijn nu keyword-only. |
|
Recursieve instanties van collections.deque kunnen nu worden gepickled. |
|
BLAKE2-hashfuncties zijn aan de module toegevoegd. blake2b() en blake2s() zijn altijd beschikbaar en ondersteunen de volledige functieset van BLAKE2. |
|
De SHA-3-hashfuncties sha3_224(), sha3_256(), sha3_384(), sha3_512() en de SHAKE-hashfuncties shake_128() en shake_256() zijn toegevoegd. |
|
De op een wachtwoord gebaseerde sleutelafleidingsfunctie scrypt() is nu beschikbaar met OpenSSL 1.1.0 en nieuwer. |
|
json.load() en json.loads() ondersteunen nu binaire invoer. Gecodeerde JSON moet worden weergegeven met UTF-8, UTF-16 of UTF-32. |
|
De nieuwe constante math.tau (τ) is toegevoegd |
Voltooid |
Met een nieuwe methode close() kan een scandir()-iterator expliciet worden gesloten. De scandir()-iterator ondersteunt nu het context-managerprotocol. |
|
Op Linux blokkeert os.urandom() nu totdat de urandom-entropiepool van het systeem is geïnitialiseerd, om de beveiliging te verhogen. |
|
De Linux-syscall getrandom() (willekeurige bytes ophalen) is nu beschikbaar als de nieuwe functie os.getrandom(). |
|
Ondersteuning toegevoegd voor modifier-spans in reguliere expressies. Voorbeelden: ‘(?i:p)ython’ komt overeen met ‘python’ en ‘Python’, maar niet met ‘PYTHON’; ‘(?i)g(?-i:v)r’ komt overeen met ‘GvR’ en ‘gvr’, maar niet met ‘GVR’. |
|
Match-objectgroepen kunnen worden benaderd via __getitem__, wat equivalent is aan group(). Dus mo[‘name’] is nu equivalent aan mo.group(‘name’). |
|
Match-objecten ondersteunen nu index-achtige objecten als groepsindices. |
|
De functie ioctl() ondersteunt nu de controlecode SIO_LOOPBACK_FAST_PATH. |
|
De getsockopt()-constanten SO_DOMAIN, SO_PROTOCOL, SO_PEERSEC en SO_PASSSEC worden nu ondersteund. |
|
De setsockopt() ondersteunt nu de vorm setsockopt(level, optname, None, optlen: int). |
|
De socket-module ondersteunt nu de adresfamilie AF_ALG om te koppelen met de crypto-API van de Linux-kernel. ALG_, SOL_ALG en sendmsg_afalg() zijn toegevoegd. |
|
Nieuwe Linux-constanten TCP_USER_TIMEOUT en TCP_CONGESTION zijn toegevoegd. |
|
ssl ondersteunt OpenSSL 1.1.0. De minimaal aanbevolen versie is 1.0.2. |
|
3DES is verwijderd uit de standaard cipher suites en ChaCha20 Poly1305 cipher suites zijn toegevoegd. |
|
SSLContext heeft een betere standaardconfiguratie voor opties en ciphers. |
|
Een SSL-sessie kan worden gekopieerd van de ene verbinding aan de clientzijde naar de andere met de nieuwe klasse SSLSession. Hervatting van een TLS-sessie kan de initiële handshake versnellen, de latentie verlagen en de prestaties verbeteren. |
|
De nieuwe methode get_ciphers() kan worden gebruikt om een lijst van ingeschakelde ciphers op te halen, geordend op cipher-prioriteit. |
|
Alle constanten en vlaggen zijn omgezet naar IntEnum en IntFlags. |
|
Server- en clientspecifieke TLS-protocollen voor SSLContext zijn toegevoegd. |
|
SSLContext.post_handshake_auth toegevoegd om TLS 1.3-authenticatie na de handshake in te schakelen en ssl.SSLSocket.verify_client_post_handshake() om deze te starten. |
|
ondersteunt nu IEEE 754 half-precision floats via de opmaakspecificatie ‘e’. |
|
De nieuwe functie getfilesystemencodeerrors() retourneert de naam van de foutmodus die wordt gebruikt om te converteren tussen Unicode-bestandsnamen en bytes-bestandsnamen. |
|
De functies compress() en decompress() accepteren nu keywordargumenten |
|
Opmerkingen