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(). | |
De deque-klasse definieert nu index(), insert() en copy() en ondersteunt de operators + en *. | |
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