Python 3.5¶
Nedan följer en lista över slutförda/accepterade PEP:er för Python 3.5 grupperade efter deras inverkan på MicroPython.
Utökningar av syntaxen |
Status |
|
Ytterligare generaliseringar av uppackning |
Partiell |
|
En ny operator för matrismultiplikation |
Komplett |
|
Koroutiner med |
Komplett |
|
Utökningar och ändringar av körtiden |
||
%-formatering för binära strängar |
Komplett |
|
Försök igen med systemanrop som misslyckas med |
Komplett |
|
Ändra hanteringen av |
Komplett |
|
Ändringar i standardbiblioteket |
||
|
||
|
Komplett |
|
Diverse ändringar |
||
Förbättrat stöd för Python-zip-applikationer |
||
Gör Python Launcher medveten om virtuella miljöer |
Inte relevant |
|
Typtips (endast rådgivande) |
Komplett [1] |
|
Eliminering av PYO-filer |
Inte relevant |
|
Omdesign av inläsning av tilläggsmoduler |
||
Övriga språkändringar:
Lade till felhanterarna namereplace. Felhanterarna backslashreplace fungerar nu med avkodning och översättning. |
|
Docstrings för egenskaper är nu skrivbara. Detta är särskilt användbart för docstrings i collections.namedtuple() |
|
Cirkulära importer som involverar relativa importer stöds nu. |
Nya moduler:
Ändringar i inbyggda moduler:
Klassen OrderedDict är nu implementerad i C, vilket gör den 4 till 100 gånger snabbare. |
|
Vyerna OrderedDict.items(), OrderedDict.keys(), OrderedDict.values() stöder nu iteration med reversed(). |
|
The deque class now defines index(), insert(), and copy(), and supports the + and * operators. |
|
Docstrings som produceras av namedtuple() kan nu uppdateras. |
|
Klassen UserString implementerar nu metoderna __getnewargs__(), __rmod__(), casefold(), format_map(), isprintable() och maketrans() för att matcha motsvarande metoder i str. |
|
Elementjämförelse i merge() kan nu anpassas genom att skicka en nyckelfunktion i ett nytt valfritt nyckelord key, och ett nytt valfritt nyckelord reverse kan användas för att vända elementjämförelsen |
|
En ny metod BufferedIOBase.readinto1() som använder högst ett anrop till den underliggande råströmmens metoder RawIOBase.read() eller RawIOBase.readinto() |
|
JSON-avkodaren genererar nu JSONDecodeError i stället för ValueError för att ge bättre kontextinformation om felet. |
|
Två nya konstanter har lagts till i math-modulen: inf och nan. |
Komplett |
En ny funktion isclose() ger ett sätt att testa för ungefärlig likhet. |
|
En ny funktion gcd() har lagts till. Funktionen fractions.gcd() är nu utfasad. |
|
Den nya funktionen scandir() som returnerar en iterator av DirEntry-objekt har lagts till. |
|
Funktionen urandom() använder nu systemanropet getrandom() på Linux 3.17 eller nyare, och getentropy() på OpenBSD 5.6 och nyare, vilket eliminerar behovet av att använda /dev/urandom och undviker fel på grund av potentiell utarmning av filbeskrivare. |
|
Nya funktioner get_blocking() och set_blocking() gör det möjligt att hämta och ställa in en filbeskrivares blockeringsläge (O_NONBLOCK.) |
|
Det finns en ny funktion os.path.commonpath() som returnerar den längsta gemensamma underdelen av varje skickat sökvägsnamn |
|
Referenser och villkorliga referenser till grupper med fast längd är nu tillåtna i lookbehind-assertioner |
|
Antalet fångande grupper i reguljära uttryck är inte längre begränsat till 100. |
|
Funktionerna sub() och subn() ersätter nu omatchade grupper med tomma strängar i stället för att generera ett undantag. |
|
Undantagen re.error har nya attribut, msg, pattern, pos, lineno och colno, som ger bättre kontextinformation om felet |
|
Funktioner med tidsgränser använder nu en monoton klocka i stället för en systemklocka. |
|
En ny metod socket.sendfile() gör det möjligt att skicka en fil över en socket genom att använda den högpresterande funktionen os.sendfile() på UNIX, vilket resulterar i att uppladdningar blir 2 till 3 gånger snabbare än vid användning av enbart socket.send() |
|
Metoden socket.sendall() återställer inte längre socketens tidsgräns varje gång byte tas emot eller skickas. Socketens tidsgräns är nu den maximala totala varaktigheten för att skicka all data. |
|
Argumentet backlog i metoden socket.listen() är nu valfritt. Som standard sätts det till SOMAXCONN eller till 128, beroende på vilket som är minst. |
Komplett |
Stöd för Memory BIO |
|
Stöd för Application-Layer Protocol Negotiation |
|
Det finns en ny metod SSLSocket.version() för att fråga efter den faktiska protokollversion som används. |
|
Klassen SSLSocket implementerar nu en metod SSLSocket.sendfile(). |
|
Metoden SSLSocket.send() genererar nu antingen undantaget ssl.SSLWantReadError eller ssl.SSLWantWriteError på en icke-blockerande socket om operationen skulle blockera. Tidigare returnerade den 0. |
|
Funktionen cert_time_to_seconds() tolkar nu indatatiden som UTC och inte som lokal tid, enligt RFC 5280. Dessutom är returvärdet alltid ett int. |
|
Nya metoder SSLObject.shared_ciphers() och SSLSocket.shared_ciphers() returnerar listan över chiffer som skickats av klienten under handskakningen. |
|
Metoderna SSLSocket.do_handshake(), SSLSocket.read(), SSLSocket.shutdown() och SSLSocket.write() i klassen SSLSocket återställer inte längre socketens tidsgräns varje gång byte tas emot eller skickas. |
|
Funktionen match_hostname() stöder nu matchning av IP-adresser. |
|
En ny funktion set_coroutine_wrapper() gör det möjligt att ställa in en global krok som anropas när ett koroutinobjekt skapas av en async def-funktion. En motsvarande get_coroutine_wrapper() kan användas för att hämta en aktuellt inställd wrapper. |
|
En ny funktion is_finalizing() kan användas för att kontrollera om Python-tolken håller på att stängas av. |
|
Funktionen monotonic() är nu alltid tillgänglig |
|
Anteckningar