Python 3.5¶
Hieronder staat een lijst met afgeronde/geaccepteerde PEP’s voor Python 3.5, gegroepeerd naar hun impact op MicroPython.
Uitbreidingen op de syntaxis |
Status |
|
Aanvullende generalisaties van unpacking |
Gedeeltelijk |
|
Een nieuwe operator voor matrixvermenigvuldiging |
Volledig |
|
Coroutines met |
Volledig |
|
Uitbreidingen en wijzigingen aan de runtime |
||
%-formattering voor binaire strings |
Volledig |
|
Het opnieuw proberen van systeemaanroepen die falen met |
Volledig |
|
Wijziging van de afhandeling van |
Volledig |
|
Wijzigingen aan de standaardbibliotheek |
||
|
||
|
Volledig |
|
Diverse wijzigingen |
||
Verbeterde ondersteuning voor Python zip-applicaties |
||
De Python Launcher bewust maken van virtuele omgevingen |
Niet relevant |
|
Type hints (alleen adviserend) |
Volledig [1] |
|
Eliminatie van PYO-bestanden |
Niet relevant |
|
Herontwerp van het laden van extensiemodules |
||
Overige taalwijzigingen:
De namereplace-foutafhandelaars toegevoegd. De backslashreplace-foutafhandelaars werken nu ook met decoderen en vertalen. |
|
Docstrings van properties zijn nu beschrijfbaar. Dit is vooral nuttig voor docstrings van collections.namedtuple() |
|
Circulaire imports met relatieve imports worden nu ondersteund. |
Nieuwe modules:
Wijzigingen aan ingebouwde modules:
De OrderedDict-klasse is nu geïmplementeerd in C, waardoor deze 4 tot 100 keer sneller is. |
|
De views OrderedDict.items(), OrderedDict.keys() en OrderedDict.values() ondersteunen nu iteratie met reversed(). |
|
The deque class now defines index(), insert(), and copy(), and supports the + and * operators. |
|
Docstrings die door namedtuple() worden geproduceerd, kunnen nu worden bijgewerkt. |
|
De UserString-klasse implementeert nu de methoden __getnewargs__(), __rmod__(), casefold(), format_map(), isprintable() en maketrans() om overeen te komen met de corresponderende methoden van str. |
|
Elementvergelijking in merge() kan nu worden aangepast door een key-functie door te geven in een nieuw optioneel key-keyword-argument, en een nieuw optioneel reverse-keyword-argument kan worden gebruikt om de elementvergelijking om te keren |
|
Een nieuwe methode BufferedIOBase.readinto1(), die hooguit één aanroep gebruikt naar de methoden RawIOBase.read() of RawIOBase.readinto() van de onderliggende raw stream |
|
De JSON-decoder werpt nu JSONDecodeError op in plaats van ValueError om betere contextinformatie over de fout te bieden. |
|
Twee nieuwe constanten zijn toegevoegd aan de math-module: inf en nan. |
Volledig |
Een nieuwe functie isclose() biedt een manier om op benaderende gelijkheid te testen. |
|
Een nieuwe functie gcd() is toegevoegd. De functie fractions.gcd() is nu gedeprecieerd. |
|
De nieuwe functie scandir(), die een iterator van DirEntry-objecten teruggeeft, is toegevoegd. |
|
De functie urandom() gebruikt nu de getrandom()-syscall op Linux 3.17 of nieuwer, en getentropy() op OpenBSD 5.6 en nieuwer, waardoor het gebruik van /dev/urandom niet meer nodig is en storingen door mogelijke uitputting van file descriptors worden vermeden. |
|
Nieuwe functies get_blocking() en set_blocking() maken het mogelijk om de blocking-modus van een file descriptor (O_NONBLOCK) op te vragen en in te stellen. |
|
Er is een nieuwe functie os.path.commonpath() die het langste gemeenschappelijke subpad van elk doorgegeven padnaam teruggeeft |
|
Referenties en voorwaardelijke referenties naar groepen met een vaste lengte zijn nu toegestaan in lookbehind-asserties |
|
Het aantal capturing groups in reguliere expressies is niet langer beperkt tot 100. |
|
De functies sub() en subn() vervangen niet-overeenkomende groepen nu door lege strings in plaats van een exceptie op te werpen. |
|
De re.error-excepties hebben nieuwe attributen, msg, pattern, pos, lineno en colno, die betere contextinformatie over de fout bieden |
|
Functies met timeouts gebruiken nu een monotone klok in plaats van een systeemklok. |
|
Een nieuwe methode socket.sendfile() maakt het mogelijk om een bestand over een socket te verzenden met behulp van de hoogperformante functie os.sendfile() op UNIX, waardoor uploads 2 tot 3 keer sneller zijn dan bij gebruik van het eenvoudige socket.send() |
|
De methode socket.sendall() reset de socket-timeout niet langer telkens wanneer bytes worden ontvangen of verzonden. De socket-timeout is nu de maximale totale duur om alle gegevens te verzenden. |
|
Het backlog-argument van de methode socket.listen() is nu optioneel. Standaard wordt het ingesteld op SOMAXCONN of op 128, afhankelijk van welke kleiner is. |
Volledig |
Ondersteuning voor Memory BIO |
|
Ondersteuning voor Application-Layer Protocol Negotiation |
|
Er is een nieuwe methode SSLSocket.version() om de daadwerkelijk gebruikte protocolversie op te vragen. |
|
De SSLSocket-klasse implementeert nu een methode SSLSocket.sendfile(). |
|
De methode SSLSocket.send() werpt nu op een non-blocking socket de exceptie ssl.SSLWantReadError of ssl.SSLWantWriteError op als de bewerking zou blokkeren. Voorheen gaf deze 0 terug. |
|
De functie cert_time_to_seconds() interpreteert de invoertijd nu als UTC en niet als lokale tijd, volgens RFC 5280. Bovendien is de teruggegeven waarde altijd een int. |
|
Nieuwe methoden SSLObject.shared_ciphers() en SSLSocket.shared_ciphers() geven de lijst met ciphers terug die de client tijdens de handshake heeft verzonden. |
|
De methoden SSLSocket.do_handshake(), SSLSocket.read(), SSLSocket.shutdown() en SSLSocket.write() van de SSLSocket-klasse resetten de socket-timeout niet langer telkens wanneer bytes worden ontvangen of verzonden. |
|
De functie match_hostname() ondersteunt nu het matchen van IP-adressen. |
|
Een nieuwe functie set_coroutine_wrapper() maakt het mogelijk om een globale hook in te stellen die wordt aangeroepen telkens wanneer een coroutine-object door een async def-functie wordt aangemaakt. Een bijbehorende get_coroutine_wrapper() kan worden gebruikt om een momenteel ingestelde wrapper op te halen. |
|
Een nieuwe functie is_finalizing() kan worden gebruikt om te controleren of de Python-interpreter wordt afgesloten. |
|
De functie monotonic() is nu altijd beschikbaar |
|
Opmerkingen