Ilmus uus stabiilne versioon populaarsest programmeerimiskeelest Python.
Python on kõrgetasemeline üldotstarbeline programmeerimiskeel, mis keskendub arendaja tootlikkuse ja koodi loetavuse parandamisele. Peamised omadused on dünaamiline tüüpimine, automaatne mälu juhtimine, täielik introspektsioon, erandite käsitlemise mehhanism, mitme lõime tugi ja kõrgetasemelised andmestruktuurid.
Python on stabiilne ja laialdaselt kasutatav keel. Seda kasutatakse paljudes projektides ja erinevates rollides: põhikeelena või laienduste ja rakenduste integreerimise jaoks. Peamised rakendusalad on veebiarendus, masinõpe ja andmeanalüüs, automatiseerimine ja süsteemiadministreerimine. Hetkel on Python kolmandal kohal edetabelis TIOBE.
Peamised muudatused:
Uus kõrge jõudlusega süntaksianalüsaator, mis põhineb PEG grammatikatel.
Uues versioonis on hetkel kasutatav Python'i parser, mis põhineb LL(1) grammatikal, asendatud uue kõrge jõudlusega ja stabiilse süntaktilise analüsaatoriga, mis põhineb PEG (RP-grammatika). Grammatikate jaoks, mis on esindatud KS-grammatikates, näiteks LR-analüsaatorid, vajavad nad erilist leksikaalanalüüsi sammu, mis jagab sisendandmed vastavalt tühikutele, kirjavahemärkidele jne. See on vajalik, kuna need analüsaatorid kasutavad mõnede KS-grammatikate töötlemiseks eelanalüüsi, mis toimib lineaarajas. RP-grammatikad ei nõua eraldi leksikaalanalüüsi sammu, kuna reeglid selle jaoks võivad olla seotud koos teiste grammatikareeglitega.
Uued operaatorid ja funktsioonid
Sisseehitatud klassi dict on lisatud kaks uut operaatorit, | sõnaraamatute ühendamiseks ja |= nende värskendamiseks.
Klassi str on lisatud kaks uut funktsiooni: str.removeprefix(eesliide) ja str.removesuffix(lõpp).
Tüüpide näpunäide sisseehitatud kollektsioonide tüüpide jaoks
Selles versioonis on kaasatud toetuse genereerijate süntaks kõikides standardsetes kollektsioonides, mis on hetkel saadaval.
def read_blog_tags(tags: list[str]) -> None:
for tag in tags:
print("Tag Name", tag)
Muudatused
PEP 573 Mooduli olekute ligipääs laiendusmeetodite kaudu
PEP 593 Paindlikud funktsioonid ja muutujate annotatsioonid
PEP 602 Python liigub üle igaaastastele stabiilsetele väljalaskeile
PEP 614 Grammatiliste piirangute leevendamine dekoratoritele
PEP 615 IANA aegade andmebaasi tugi standardraamatukogus
BPO 38379 Prügikogumine ei blokeeru taastatud objektide peal
BPO 38692 os.pidfd_open, protsesside haldamine ilma võistlemise ja signaalideta;
BPO 39926 Unicode tugi on värskendatud versioonile 13.0.0
BPO 1635741, kui Pythonit initsialiseeritakse mitu korda samas protsessis, ei toimu enam mälu leket
Python kogud (range, tuple, set, frozenset, list, dict) on kiirendatud vektorkutsumise PEP 590 kaudu
Mõned Python moodulid (_abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, operator, resource, time, _weakref) kasutavad nüüd mitme etapi initsialiseerimist nagu määratud PEP 489
Rida standardraamatukogu mooduleid (audioop, ast, grp, _hashlib, pwd, _posixsubprocess, random, select, struct, termios, zlib) kasutavad nüüd stabiilset ABI-d, nagu määratud PEP 384.
Allikas: linux.org.ru
