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 |
|