Python 3.8¶
A Python 3.8.0 (végleges) 2019. október 14-én jelent meg. A 3.8 funkcióit a PEP 569 definiálja, a változások részletes leírása pedig a What’s New in Python 3.8. oldalon található.
Funkciók | Állapot | |
Csak pozíció szerinti argumentumok | ||
Értékadó kifejezések | Kész | |
Pickle protokoll 5 sávon kívüli adatokkal | ||
Futásidejű auditálási horgok | ||
Python inicializálási konfiguráció | ||
Vectorcall: gyors hívási protokoll a CPythonhoz | ||
Vegyes | ||
Az f-stringek támogatják a = jelet az önmagukat dokumentáló kifejezésekhez és a hibakereséshez | Kész | |
Egyéb nyelvi változások:
Egy continue utasítás a megvalósítással kapcsolatos probléma miatt nem volt megengedett a finally záradékban. A Python 3.8-ban ez a korlátozás megszűnt | Kész |
A bool, az int és a fractions.Fraction típusok mostantól rendelkeznek egy as_integer_ratio() metódussal, hasonlóan ahhoz, amely a float és a decimal.Decimal típusokban található | |
Az int, a float és a complex konstruktorai mostantól a __index__() speciális metódust használják, ha az elérhető és a megfelelő __int__(), __float__() vagy __complex__() metódus nem érhető el | |
Hozzáadásra került a N{name} escape-ek támogatása reguláris kifejezésekben | |
A dict és a dictview objektumok mostantól fordított beillesztési sorrendben iterálhatók a reversed() segítségével | |
A függvényhívásokban a kulcsszónevekre megengedett szintaxis tovább szigorodott. Konkrétan az f((keyword)=arg) már nem megengedett | |
Az általánosított iterálható kicsomagolás a yield és a return utasításokban már nem igényel körülvevő zárójeleket | |
Amikor egy vessző hiányzik egy olyan kódban, mint a [(10, 20) (30, 40)], a fordító egy SyntaxWarning üzenetet jelenít meg hasznos javaslattal | |
A datetime.date vagy datetime.datetime alosztályai és a datetime.timedelta objektumok közötti aritmetikai műveletek mostantól az alosztály egy példányát adják vissza, nem pedig az alaposztályét | |
Amikor a Python értelmezőt egy Ctrl-C (SIGINT) megszakítja, és az így keletkező KeyboardInterrupt kivételt nem kapják el, a Python folyamat mostantól egy SIGINT jelen keresztül lép ki, vagy a helyes kilépési kóddal, így a hívó folyamat észlelheti, hogy a folyamat egy Ctrl-C miatt halt meg | |
A programozás néhány haladó stílusa megköveteli a types.CodeType objektum frissítését egy meglévő függvényhez | |
Egész számok esetén a pow() függvény háromargumentumos formája mostantól megengedi, hogy a kitevő negatív legyen abban az esetben, ha az alap relatív prím a modulushoz | |
A dict-értelmezések szinkronizálva lettek a dict-literálokkal, így a kulcs számítódik ki először, az érték pedig másodikként | |
Az object.__reduce__() metódus mostantól egy kettőtől hat elem hosszúságú tuple-t adhat vissza |
A beépített modulok változásai:
Az asyncio.run() az ideiglenes API-ból a stabil API szintjére lépett | Kész |
A python -m asyncio futtatása egy natívan aszinkron REPL-t indít el | |
Az asyncio.CancelledError kivétel mostantól a BaseException-től örököl, nem pedig az Exception-től, és többé nem örököl a concurrent.futures.CancelledError-tól | Kész |
Hozzáadásra került az asyncio.Task.get_coro() az asyncio.Task objektumon belül becsomagolt coroutine lekéréséhez | |
Az asyncio taszkok mostantól elnevezhetők, akár a name kulcsszó-argumentum átadásával az asyncio.create_task()-nek vagy a create_task() eseményhurok-metódusnak, akár a set_name() metódus meghívásával a taszk objektumon | |
Hozzáadásra került a Happy Eyeballs támogatása az asyncio.loop.create_connection()-hoz. A viselkedés megadásához két új paraméter került hozzáadásra: a happy_eyeballs_delay és az interleave. | |
A get_objects() mostantól kaphat egy opcionális generation paramétert, amely azt a generációt jelzi, amelyből az objektumokat le kell kérni. (Megjegyzendő azonban, hogy bár a gc beépített, a get_objects() nincs megvalósítva a MicroPythonban) | |
Hozzáadásra került egy új függvény, a math.dist(), két pont közötti euklideszi távolság kiszámításához | |
A math.hypot() függvény kibővítésre került több dimenzió kezelésére | |
Hozzáadásra került egy új függvény, a math.prod(), a sum() analóg megfelelőjeként, amely egy „start” érték (alapértelmezett: 1) és egy iterálható számhalmaz szorzatát adja vissza | |
Hozzáadásra került két új kombinatorikai függvény, a math.perm() és a math.comb() | |
Hozzáadásra került egy új függvény, a math.isqrt(), amellyel pontos egész négyzetgyökök számíthatók ki lebegőpontos átalakítás nélkül | |
A math.factorial() függvény többé nem fogad el olyan argumentumokat, amelyek nem int-szerűek | Kész |
Hozzáadásra került egy új sys.unraisablehook() függvény, amely felülírható annak szabályozására, hogy a „nem felvethető kivételek” hogyan kerüljenek kezelésre | |