Po roku a pol vývoja predložené hlavné vydanie programovacieho jazyka Python 3.8. Opravné aktualizácie pre vetvu Python 3.8 je plánované uvoľnenie do 18 mesiacov. Kritické chyby zabezpečenia budú opravené na 5 rokov do októbra 2024. Opravné aktualizácie pre vetvu 3.8 budú vydávané každé dva mesiace, pričom prvé opravné vydanie Pythonu 3.8.1 je naplánované na december.
Podpora priraďovacie operácie v rámci zložitých výrazov. S novým operátorom „:=“ je možné vykonávať operácie priraďovania hodnôt v rámci iných výrazov, napríklad aby sa zabránilo dvojitým volaniam funkcií v podmienených príkazoch a pri definovaní slučiek:
if (n := len(a)) > 10:
...
while (blok := f.read(256)) != ":
...
Podpora nová syntax na špecifikovanie argumentov funkcií. Pri enumerácii argumentov počas definície funkcie môžete teraz zadať „/“ na oddelenie argumentov, ktorým možno priradiť hodnoty iba na základe poradia, v ktorom sú hodnoty vymenované počas volania funkcie, od argumentov, ktoré možno priradiť. v ľubovoľnom poradí (syntax "premenná=hodnota"). Z praktického hľadiska nová funkcia umožňuje funkciám v Pythone úplne emulovať správanie existujúcich funkcií v C a tiež sa vyhnúť viazaniu na konkrétne názvy, napríklad ak sa v budúcnosti plánuje zmena názvu parametra.
Príznak „/“ dopĺňa predtým pridaný príznak „*“, pričom oddeľuje premenné, pre ktoré je použiteľné len priradenie v tvare „premenná=hodnota“. Napríklad vo funkcii "def f(a, b, /, c, d, *, e, f):" možno premenné "a" a "b" priradiť len v poradí, v akom sú uvedené hodnoty ,
premenné „e“ a „f“ len prostredníctvom priradenia „premenná=hodnota“ a premenné „c“ a „d“ ktorýmkoľvek z nasledujúcich spôsobov:
Pridané nové C API
na konfiguráciu inicializačných parametrov Pythonu, čo umožňuje úplnú kontrolu nad všetkými konfigurácia a poskytovanie pokročilých zariadení na riešenie chýb. Navrhované API uľahčuje vloženie funkčnosti tlmočníka Pythonu do iných aplikácií C;
Implementovaná nový protokol Vectorcall pre rýchlejší prístup k objektom napísaným v jazyku C. V CPythone 3.8 je prístup k Vectorcall stále obmedzený na interné použitie, prechod do kategórie verejne prístupných API je plánovaný v CPythone 3.9;
Pridané volania modulu Runtime Audit Hooks, ktoré poskytujú aplikáciám a rámcom v Pythone prístup k informáciám na nízkej úrovni o priebehu skriptu na audit vykonaných akcií (napríklad môžete sledovať import modulov, otváranie súborov, pomocou sledovania, prístup k sieťovým zásuvkám, spúšťanie kódu cez exec, eval a run_mod);
V module rôsolzabezpečené podpora protokolu Pickle 5, ktorý sa používa na serializáciu a deserializáciu objektov. Pickle vám umožňuje optimalizovať prenos veľkého množstva údajov medzi procesmi Pythonu vo viacjadrových a viacuzlových konfiguráciách znížením počtu operácií kopírovania pamäte a použitím dodatočných optimalizačných techník, ako je použitie kompresných algoritmov špecifických pre údaje. Piata verzia protokolu je pozoruhodná pridaním mimopásmového prenosového režimu, v ktorom môžu byť dáta prenášané oddelene od hlavného prúdu pickle.
Štandardne je aktivovaná štvrtá verzia protokolu Pickle, ktorá v porovnaní s predtým štandardne ponúkanou treťou verziou umožňuje vyšší výkon a zníženie veľkosti prenášaných dát;
V module zadaním Zavádza sa niekoľko nových funkcií:
Trieda TypedDict pre asociatívne polia, v ktorých sú informácie o type explicitne špecifikované pre údaje spojené s kľúčmi („TypedDict('Point2D', x=int, y=int, label=str)”).
Typ doslovný, ktorý vám umožňuje obmedziť parameter alebo vrátiť hodnotu na niekoľko preddefinovaných hodnôt („Literal['connected', 'disconnected']“).
dizajn"koniec", čo umožňuje definovať hodnoty premenných, funkcií, metód a tried, ktoré nie je možné zmeniť ani priradiť ("pi: Final[float] = 3.1415926536").
Pridaná možnosť priradiť vyrovnávaciu pamäť pre kompilované súbory pomocou bajtkódu, uložené v samostatnom strome FS a oddelené od adresárov s kódom. Cesta pre ukladanie súborov s bajtkódom sa nastavuje cez premennú PYTHONPYCACHEPREFIX alebo možnosť "-X pycache_prefix";
Implementovaná schopnosť vytvárať ladiace zostavy Pythonu, ktoré používajú ABI identické s vydaním, čo vám umožňuje načítať rozšírenia napísané v jazyku SI, skompilované pre stabilné vydania, v ladiacich zostavách;
f-reťazce (formátované literály s predponou 'f') poskytujú podporu pre operátor = (napríklad "f'{expr=}'"), ktorý vám umožňuje previesť výraz na text pre jednoduchšie ladenie. Napríklad: