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(). | |
Klassen deque definierar nu index(), insert() och copy() och stöder operatorerna + och *. | |
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