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