Python 3.9¶
A Python 3.9.0 (végleges) 2020. október 5-én jelent meg. A 3.9 funkcióit a PEP 596 definiálja, a változások részletes leírása pedig a What’s New in Python 3.9 oldalon található.
Funkciók |
Állapot |
|
Gyors hozzáférés a modulállapothoz a C bővítménytípusok metódusaiból |
Nem releváns |
|
Unió operátorok hozzáadása a dict-hez |
Kész [1] |
|
Típusjelölő generikusok a standard gyűjteményekben |
||
Rugalmas függvény- és változó-annotációk |
||
A CPython éves kiadási ciklust vezet be. Az éves helyett kéthavonkénti kiadási ciklust megcélozva |
Nem releváns |
|
Lazább nyelvtani korlátozások a dekorátorokon |
||
Az IANA időzóna-adatbázis mostantól jelen van a standard könyvtárban a zoneinfo modulban |
||
Karakterlánc-metódusok előtagok és utótagok eltávolításához |
||
A CPython mostantól egy PEG-alapú új elemzőt használ |
Nem releváns |
Egyéb nyelvi változások:
Az __import__() mostantól ImportError-t vet fel a ValueError helyett |
Kész |
A Python mostantól lekéri a parancssorban megadott szkriptfájlnév abszolút útvonalát (pl.: python3 script.py): a __main__ modul __file__ attribútuma relatív útvonal helyett abszolút útvonal lett |
|
A legjobb teljesítmény érdekében alapértelmezetten az errors argumentum csak az első kódolási/dekódolási hibánál kerül ellenőrzésre, az encoding argumentumot pedig az üres karakterláncok esetén olykor figyelmen kívül hagyja |
|
A „”.replace(„”, s, n) mostantól s-t ad vissza üres karakterlánc helyett minden nem nulla n esetén. Ez mostantól összhangban van a „”.replace(„”, s)-szel |
|
Mostantól bármely érvényes kifejezés használható dekorátorként. Korábban a nyelvtan ennél jóval szigorúbb volt |
|
Az aclose() / asend() / athrow() párhuzamos futtatása mostantól tiltott, és az ag_running mostantól az aszinkron generátor tényleges futási állapotát tükrözi |
|
A __iter__ metódus hívása során fellépő váratlan hibákat többé nem fedi el a TypeError az in operátorban, valamint az operator modul contains(), indexOf() és countOf() függvényeiben |
|
A zárójel nélküli lambda kifejezések többé nem lehetnek a kifejezés-rész egy if záradékban listaértelmezésekben és generátorkifejezésekben |
A beépített modulok változásai:
Jelentős biztonsági aggályok miatt az asyncio.loop.create_datagram_endpoint() reuse_address paramétere többé nem támogatott |
|
Hozzáadásra került egy új coroutine, a shutdown_default_executor(), amely leállítást ütemez az alapértelmezett végrehajtóhoz, és megvárja, amíg a ThreadPoolExecutor befejezi a lezárást. Ezenkívül az asyncio.run() frissítésre került az új coroutine használatára. |
|
Hozzáadásra került az asyncio.PidfdChildWatcher, egy Linux-specifikus gyermekfigyelő megvalósítás, amely a folyamat-fájlleírókat pollozza |
|
hozzáadásra került egy új coroutine asyncio.to_thread() |
|
A taszk időtúllépés miatti megszakításakor az asyncio.wait_for() mostantól megvárja, amíg a megszakítás befejeződik, abban az esetben is, amikor a timeout <= 0, ahogyan ezt a pozitív időtúllépéseknél is teszi |
|
Az asyncio mostantól TyperError-t vet fel, amikor inkompatibilis metódusokat hívnak meg egy ssl.SSLSocket sockettel |
|
A szemétgyűjtés nem blokkol a feltámasztott objektumokon |
|
Hozzáadásra került egy új függvény, a gc.is_finalized(), annak ellenőrzésére, hogy egy objektumot véglegesített-e a szemétgyűjtő |
|
A math.gcd() függvény kibővítésre került több argumentum kezelésére. Korábban csak két argumentumot támogatott |
|
Hozzáadásra került a math.lcm(): a megadott argumentumok legkisebb közös többszörösét adja vissza |
|
Hozzáadásra került a math.nextafter(): az x utáni következő lebegőpontos értéket adja vissza y irányában |
|
Hozzáadásra került a math.ulp(): egy float legkisebb helyiértékű bitjének értékét adja vissza |
|
Elérhetővé tette a Linux-specifikus os.pidfd_open()-t és az os.P_PIDFD-t |
|
Az os.unsetenv() függvény mostantól Windowson is elérhető |
Kész |
Az os.putenv() és az os.unsetenv() függvény mostantól mindig elérhető |
Kész |
Hozzáadásra került az os.waitstatus_to_exitcode() függvény: egy wait státuszt kilépési kóddá alakít |
|
Hozzáadásra került egy új random.Random.randbytes metódus: véletlen bájtokat generál |
|
Hozzáadásra került egy új sys.platlibdir attribútum: a platform-specifikus könyvtár neve |
|
Korábban a sys.stderr blokk-pufferelt volt nem interaktív módban. Mostantól a stderr alapértelmezetten mindig sor-pufferelt |
|
Megjegyzések