Python 3.7

Nya funktioner:

Funktion

Status

PEP 538

Tvångskonvertering av den äldre C-lokalen till en UTF-8-baserad lokal

PEP 539

Ett nytt C-API för trådlokal lagring i CPython

PEP 540

UTF-8-läge

PEP 552

Deterministisk pyc

PEP 553

Inbyggd breakpoint()

PEP 557

Dataklasser

PEP 560

Kärnstöd för typing-modulen och generiska typer

PEP 562

Modulers __getattr__ och __dir__

Delvis

PEP 563

Uppskjuten utvärdering av annoteringar

PEP 564

Tidsfunktioner med nanosekundsupplösning

Delvis [1]

PEP 565

Visa DeprecationWarning i __main__

PEP 567

Kontextvariabler

Övriga språkändringar:

async och await är nu reserverade nyckelord

Klar

dict-objekt måste bevara insättningsordningen

Fler än 255 argument kan nu skickas till en funktion; en funktion kan nu ha fler än 255 parametrar

bytes.fromhex() och bytearray.fromhex() ignorerar nu alla ASCII-blanksteg, inte bara mellanslag

str, bytes och bytearray fick stöd för den nya metoden isascii(), som kan användas för att testa om en sträng eller bytes endast innehåller ASCII-tecken

ImportError visar nu modulnamnet och modulens __file__-sökväg när from ... import ... misslyckas

Cirkulära importer som involverar absoluta importer med bindning av en undermodul till ett namn stöds nu

object.__format__(x, '') motsvarar nu str(x) snarare än format(str(self), '')

För att bättre stödja dynamiskt skapande av stackspår kan types.TracebackType nu instansieras från Python-kod, och attributet tb_next på tracebacks är nu skrivbart

Vid användning av flaggan -m expanderas nu sys.path[0] ivrigt till den fullständiga startkatalogsökvägen, i stället för att lämnas som den tomma katalogen (vilket tillåter importer från den aktuella arbetskatalogen vid den tidpunkt då en import sker)

Den nya flaggan -X importtime eller miljövariabeln PYTHONPROFILEIMPORTTIME kan användas för att visa tidsåtgången för varje modulimport

Ändringar i inbyggda moduler:

asyncio

För många för att räkna upp

gc

Nya funktioner inkluderar gc.freeze(), gc.unfreeze(), gc-get_freeze_count

math

math.remainder() lades till för att implementera rest enligt IEEE 754-stil

re

Ett antal uppstädningsfunktioner inklusive bättre stöd för uppdelning på tomma strängar samt stöd för kopiering av kompilerade uttryck och match-objekt

sys

sys.breakpointhook() lades till. sys.get(/set)_coroutine_origin_tracking_depth() lades till

time

Huvudsakligen uppdateringar för att stödja nanosekundsupplösning i PEP564, se ovan

Anteckningar