Python 3.5¶
Nachfolgend findet sich eine Liste der finalisierten/akzeptierten PEPs für Python 3.5, gruppiert nach ihren Auswirkungen auf MicroPython.
Erweiterungen der Syntax |
Status |
|
Zusätzliche Verallgemeinerungen beim Entpacken |
Teilweise |
|
Ein neuer Operator für die Matrixmultiplikation |
Vollständig |
|
Coroutinen mit |
Vollständig |
|
Erweiterungen und Änderungen an der Laufzeit |
||
%-Formatierung für Binärstrings |
Vollständig |
|
Erneutes Ausführen von Systemaufrufen, die mit |
Vollständig |
|
Änderung der |
Vollständig |
|
Änderungen an der Standardbibliothek |
||
|
||
|
Vollständig |
|
Verschiedene Änderungen |
||
Verbesserte Unterstützung für Python-Zip-Anwendungen |
||
Den Python Launcher für virtuelle Umgebungen sensibilisieren |
Nicht relevant |
|
Type Hints (nur beratend) |
Vollständig [1] |
|
Beseitigung von PYO-Dateien |
Nicht relevant |
|
Neugestaltung des Ladens von Erweiterungsmodulen |
||
Weitere Sprachänderungen:
Die Fehlerbehandlungsroutinen namereplace wurden hinzugefügt. Die Fehlerbehandlungsroutinen backslashreplace funktionieren nun auch beim Dekodieren und Übersetzen. |
|
Property-Docstrings sind nun beschreibbar. Dies ist besonders nützlich für Docstrings von collections.namedtuple() |
|
Zirkuläre Importe mit relativen Importen werden nun unterstützt. |
Neue Module:
Änderungen an eingebauten Modulen:
Die Klasse OrderedDict ist nun in C implementiert, was sie 4- bis 100-mal schneller macht. |
|
Die Views OrderedDict.items() , OrderedDict.keys() , OrderedDict.values() unterstützen nun die Iteration mit reversed(). |
|
The deque class now defines index(), insert(), and copy(), and supports the + and * operators. |
|
Von namedtuple() erzeugte Docstrings können nun aktualisiert werden. |
|
Die Klasse UserString implementiert nun die Methoden __getnewargs__(), __rmod__(), casefold(), format_map(), isprintable() und maketrans(), um den entsprechenden Methoden von str zu entsprechen. |
|
Der Elementvergleich in merge() kann nun durch Übergabe einer Schlüsselfunktion in einem neuen optionalen Schlüsselwortargument key angepasst werden, und ein neues optionales Schlüsselwortargument reverse kann verwendet werden, um den Elementvergleich umzukehren |
|
Eine neue Methode BufferedIOBase.readinto1(), die höchstens einen Aufruf der Methoden RawIOBase.read() oder RawIOBase.readinto() des zugrunde liegenden Raw-Streams verwendet |
|
Der JSON-Decoder löst nun JSONDecodeError statt ValueError aus, um bessere Kontextinformationen über den Fehler bereitzustellen. |
|
Zwei neue Konstanten wurden dem math-Modul hinzugefügt: inf und nan. |
Vollständig |
Eine neue Funktion isclose() bietet eine Möglichkeit, auf näherungsweise Gleichheit zu testen. |
|
Eine neue Funktion gcd() wurde hinzugefügt. Die Funktion fractions.gcd() ist nun veraltet. |
|
Die neue Funktion scandir(), die einen Iterator über DirEntry-Objekte zurückgibt, wurde hinzugefügt. |
|
Die Funktion urandom() verwendet nun den Syscall getrandom() unter Linux 3.17 oder neuer und getentropy() unter OpenBSD 5.6 und neuer, wodurch die Notwendigkeit der Verwendung von /dev/urandom entfällt und Fehler durch potenzielle Erschöpfung der Dateideskriptoren vermieden werden. |
|
Neue Funktionen get_blocking() und set_blocking() ermöglichen das Abfragen und Setzen des Blockierungsmodus eines Dateideskriptors (O_NONBLOCK.) |
|
Es gibt eine neue Funktion os.path.commonpath(), die den längsten gemeinsamen Teilpfad aller übergebenen Pfadnamen zurückgibt |
|
Referenzen und bedingte Referenzen auf Gruppen mit fester Länge sind nun in Lookbehind-Assertions erlaubt |
|
Die Anzahl der erfassenden Gruppen in regulären Ausdrücken ist nicht mehr auf 100 begrenzt. |
|
Die Funktionen sub() und subn() ersetzen nicht übereinstimmende Gruppen nun durch leere Strings, anstatt eine Ausnahme auszulösen. |
|
Die re.error-Ausnahmen besitzen neue Attribute, msg, pattern, pos, lineno und colno, die bessere Kontextinformationen über den Fehler liefern |
|
Funktionen mit Timeouts verwenden nun eine monotone Uhr anstelle einer Systemuhr. |
|
Eine neue Methode socket.sendfile() ermöglicht das Senden einer Datei über einen Socket mithilfe der leistungsstarken Funktion os.sendfile() unter UNIX, wodurch Uploads 2- bis 3-mal schneller sind als bei Verwendung des einfachen socket.send() |
|
Die Methode socket.sendall() setzt das Socket-Timeout nicht mehr bei jedem Empfangen oder Senden von Bytes zurück. Das Socket-Timeout ist nun die maximale Gesamtdauer zum Senden aller Daten. |
|
Das backlog-Argument der Methode socket.listen() ist nun optional. Standardmäßig wird es auf SOMAXCONN oder auf 128 gesetzt, je nachdem, welcher Wert kleiner ist. |
Vollständig |
Unterstützung für Memory BIO |
|
Unterstützung für Application-Layer Protocol Negotiation |
|
Es gibt eine neue Methode SSLSocket.version(), um die tatsächlich verwendete Protokollversion abzufragen. |
|
Die Klasse SSLSocket implementiert nun eine Methode SSLSocket.sendfile(). |
|
Die Methode SSLSocket.send() löst nun auf einem nicht blockierenden Socket entweder die Ausnahme ssl.SSLWantReadError oder ssl.SSLWantWriteError aus, wenn die Operation blockieren würde. Zuvor gab sie 0 zurück. |
|
Die Funktion cert_time_to_seconds() interpretiert die Eingabezeit nun gemäß RFC 5280 als UTC und nicht als lokale Zeit. Außerdem ist der Rückgabewert nun immer ein int. |
|
Neue Methoden SSLObject.shared_ciphers() und SSLSocket.shared_ciphers() geben die Liste der vom Client während des Handshakes gesendeten Cipher zurück. |
|
Die Methoden SSLSocket.do_handshake(), SSLSocket.read(), SSLSocket.shutdown() und SSLSocket.write() der Klasse SSLSocket setzen das Socket-Timeout nicht mehr bei jedem Empfangen oder Senden von Bytes zurück. |
|
Die Funktion match_hostname() unterstützt nun das Abgleichen von IP-Adressen. |
|
Eine neue Funktion set_coroutine_wrapper() ermöglicht das Setzen eines globalen Hooks, der immer dann aufgerufen wird, wenn ein Coroutine-Objekt von einer async-def-Funktion erstellt wird. Ein entsprechendes get_coroutine_wrapper() kann verwendet werden, um einen aktuell gesetzten Wrapper zu erhalten. |
|
Eine neue Funktion is_finalizing() kann verwendet werden, um zu prüfen, ob der Python-Interpreter heruntergefahren wird. |
|
Die Funktion monotonic() ist nun immer verfügbar |
|
Hinweise