PÀrast poolteist aastat arendust oluline programmeerimiskeele vÀljaanne . Parandusuuendused Python 3.8. haru jaoks ilmuvad 18 kuu jooksul. Kriitilised haavatavused parandatakse 5 aasta jooksul kuni oktoobri 2024. Parandusuuendused haru 3.8. jaoks ilmuvad iga kahe kuu tagant, detsembriks on planeeritud esimene parandusvÀljaanne Python 3.8.1.
Uute funktsioonide hulgas :
- omistamisoperatsioonid keerukates vĂ€ljendites. Uue operaatori «:=» abil on nĂŒĂŒd vĂ”imalik teostada vÀÀrtuste omistamisoperatsioone teiste vĂ€ljendite sees, nĂ€iteks vĂ€ltimaks funktsioonide kahekordset kutsumist tingimuslausetes ja tsĂŒklite mÀÀramisel:
if (n := len(a)) > 10:
âŠwhile (block := f.read(256)) != »:
⊠- uue funktsiooni argumendi sĂŒntaksisse. Funktsiooni mÀÀratlemisel argumendid loetledes on nĂŒĂŒd vĂ”imalik kasutada mĂ€rki â/â, mis vĂ”imaldab eraldada argumendid, millele saab vÀÀrtusi mÀÀrata ainult nende loendamise jĂ€rjekorras funktsiooni kutsumise kĂ€igus, nendest argumentidest, millele saab vÀÀrtuseid mÀÀrata ka suvalises jĂ€rjekorras (sĂŒntaks âmuutuja=vÀÀrtusâ). Praktikas vĂ”imaldab uus vĂ”imalus Pythonis funktsioonides tĂ€ielikult simuleerida C keeles olemasolevate funktsioonide kĂ€itumist ning vĂ€ltida konkreetsite nimede sidumist, nĂ€iteks juhul, kui parameetri nimi on tulevikus plaanis muuta.
MĂ€rk â/â tĂ€iendab varem lisatud tĂ€hist â*â, mis eraldab muutujad, millele saab vÀÀrtusi mÀÀrata ainult vormis âmuutuja=vÀÀrtusâ. NĂ€iteks funktsioonis âdef f(a, b, /, c, d, *, e, f):â saavad muutujad âaâ ja âbâ vÀÀrtusi mÀÀrata ainult loendamise jĂ€rjekorras.
muutujad âeâ ja âfâ ainult vÀÀrtuste mÀÀramisel âmuutuja=vÀÀrtusâ, ning muutujad âcâ ja âdâ mĂ”lemal ĂŒhel nimetatud viisil:f(10, 20, 30, 40, e=50, f=60)
f(10, 20, c=30, d=40, e=50, f=60) - uus C API
Python'i algsetamise parameetrite seadistamiseks, mis vÔimaldab tÀielikku kontrolli kÔigi ja pakub tÀiustatud veahaldusvahendeid. Ettepanek API lihtsustab Python'i tÔlgendi funktsionaalsuse lÔimimist teistesse C-keeles kirjutatud rakendustesse; - uus protokoll Vectorcall objektide kiirema kÀsitlemise jaoks, mis on kirjutatud C-keeles. CPython 3.8-s on Vectorcall'i juurdepÀÀs praegu piiratud sisemiseks kasutuseks, avalike API-deks muundamine on planeeritud CPython 3.9-s;
- Runtime Audit Hooks'i kutsed, mis annavad Python'i rakendustele ja raamistikule juurdepÀÀsu madalama taseme teabele skripti kÀitamise kÀigust, et teostada auditeeritud tegevusi (nt saab jÀlgida moodulite importimist, failide avamist, jÀlgimist, vÔrgu sokettide kasutamist, koodi kÀivitamist lÀbi exec, eval ja run_mod);
- moodulis Pickle 5 protokolli tugi, mida kasutatakse objektide serialiseerimiseks ja deserialiseerimiseks. Pickle vĂ”imaldab optimeerida suurte andmehulkade edastamist Python'i protsesside vahel mitme sĂŒdamiku ja mitme sĂ”lme konfigureerimisel, vĂ€hendades mĂ€lukopeerimise operatsioonide arvu ja kohaldades tĂ€iendavaid optimeerimistehnikaid, nagu andmetele spetsiifiliste kompressioonialgoritmide kasutamine. Protokolli viiendat versiooni iseloomustab eraldi edastamise (out-of-band) reĆŸiimi lisamine, kus andmeid saab edastada eraldi pĂ”hivoolust pickle.
- Vaikimisi on aktiveeritud Pickle neljas versioon, mis vÔrreldes varasema default-nasuna pakutud kolmanda versiooniga vÔimaldab saavutada paremat jÔudlust ja edastatavate andmete suuruse vÀhenemist.
- moodulis on esitatud mitu uut vÔimalust:
- Klass assotsiatiivsete massiivide jaoks, kus seostatavale vĂ”tmega andmetele on selgelt mÀÀratud tĂŒĂŒbi teave ("TypedDict('Point2D', x=int, y=int, label=str)").
- TĂŒĂŒp , vĂ”imaldades piirata parameetrit vĂ”i tagastusvÀÀrtust mitme ettemÀÀratud vÀÀrtusega («Literal[âconnectedâ, âdisconnectedâ]»).
- Struktuur ««, mis vÔimaldab mÀÀrata muutujate, funktsioonide, meetodite ja klasside vÀÀrtusi, mida ei saa muuta ega uuesti mÀÀrata («pi: Final[float] = 3.1415926536»).
- Lisatud on vÔimalus mÀÀrata vahemÀlu kompileeritud failide jaoks koos.Bytecode, mis salvestatakse eraldi FS-puusse ja on eraldatud koodikataloogidest. Bytecode'i salvestamise tee mÀÀratakse muutuja kaudu vÔi valiku «-X pycache_prefix»;
- vÔimalus luua Python'i silumisversioone, mis kasutavad sama ABI-d kui vÀljaanne, mis vÔimaldab silumisversioonides laadida C keeles kirjutatud laiendusi, mis on kogutud stabiilsete vÀljaannete jaoks;
- F-stringides (vormingliteralid prefiksiga âfâ) tagatakse operaatori «=» tugi (nt «f'{expr=}'»), mis vĂ”imaldab muuta vĂ€ljendi tekstiks, et hĂ”lbustada silumist. NĂ€iteks:
âșâșâș user = âeric_idleâ
âșâșâș member_since = date(1975, 7, 31)
âșâșâș f'{user=} {member_since=}'
«user=âeric_idleâ member_since=datetime.date(1975, 7, 31)» - VĂ€ljend «» on lubatud kasutada sees Đ±Đ»ĐŸĐș ;
- Uus moodul lisatud , mis vÔimaldab kasutada jagatud mÀlu segmente mitme protsessi konfiguratsioonides;
- Windows platvormil on asyncio rakendus muudetud kasutama klassi ;
- LOAD_GLOBAL kÀsu efektiivsus on tÔusnud umbes 40% tÀnu uue objektikoodi vahemÀlu mehhanismi kasutusele.
Allikas: opennet.ru
