Programmēšana

Python 3.9: kas jauns un labāks

Šodien izlaistais Python 3.9 izvirza būtiskas izmaiņas gan valodas iezīmēs, gan valodas attīstībā. Pēdējo gadu laikā Python ir kļuvis arvien populārāks, un tā izmantošana ir strauji attīstījusies tādās jomās kā datu zinātne un mašīnmācīšanās. Projekts cītīgi strādā, lai neatpaliktu no visām jaunajām prasībām.

Šeit ir aprakstītas visas galvenās Python 3.9 jaunās funkcijas.

Python pāriet uz ikgadēju izlaišanas ciklu

Līdz šim brīdim Python ir izstrādāts un izlaists ar astoņpadsmit mēnešu kadenci. PEP 602 ierosināja Python izstrādātāju komandai pieņemt ikgadēju izlaišanas ciklu, un šis priekšlikums tika pieņemts.

Gada izlaišanas cikls nozīmē mazāk funkciju vienā laidienā, bet tas nozīmē arī ātrāku atgriezenisko saiti par funkciju pārbaudi, mazāk potenciāli pārraujošu izmaiņu katram laidienam un tādējādi lielāku stimulu lietotājiem un Linux izplatīšanas pārvaldniekiem biežāk atjaunināt Python. Tas nozīmē arī to, ka izstrādes cikla beigās piedāvātās jaunās funkcijas būs tik ilgi jāievieš jaunā laidienā.

Jaunā laika skala nozīmē, ka Python 3.9 tiks piegādāts 2020. gada oktobrī. Python 3.10 oficiāli sāka pirms-alfa izstrādi 2020. gada 19. maijā, iestāsies alfa izstrādes fāzē, kad tiks piegādāts Python 3.9, un tiks piegādāts 2021. gada oktobrī. Nākamie Python izlaidumi sekos tas pats modelis.

Pēc noklusējuma Python kļūst ātrāks

Katrai Python versijai ir veiktspējas uzlabojumi salīdzinājumā ar iepriekšējo versiju. Python 3.9 ietver divus lielus uzlabojumus, kas uzlabo veiktspēju, neprasot izmaiņas esošajā kodā.

Pirmais uzlabojums nozīmē vairāk izmantot vectorcall protokols, kas ieviests Python 3.8. vectorcall ātrāk veic daudzu kopīgu funkciju izsaukumus, līdz minimumam samazinot vai izslēdzot uz zvanu izveidotos pagaidu objektus. Programmā Python 3.9 vairākas iebūvētas Python versijas - diapazons, tuple, set, frozenset, list, dict - izmantot vectorcall iekšēji, lai paātrinātu izpildi.

Otrs lielais veiktspējas uzlabotājs ir efektīvāka Python avota kodēšanas parsēšana. Jaunais CPython izpildlaika parsētājs nebija paredzēts veiktspējas problēmu novēršanai, bet drīzāk sākotnējā parsētāja iekšējo neatbilstību novēršanai. Tomēr svarīgs ieguvums ir ātrāka parsēšana, īpaši lieliem koda apjomiem.

Vairāk Python virkņu un vārdnīcas funkciju

Python atvieglo manipulēšanu ar izplatītiem datu tipiem, un Python 3.9 paplašina šo vienkāršību ar jaunām virkņu un vārdnīcu funkcijām. Stīgām ir jaunas metodes, lai noņemtu priedēkļus un sufiksus - darbības, kuru novilkšanai jau sen ir vajadzīgs daudz manuāla darba. Vārdnīcām tagad ir savienības operatori: viens apvieno divas vārdnīcas jaunā vārdnīcā un viens, lai atjauninātu vienas vārdnīcas saturu ar citu vārdnīcu.

Dekoratori zaudē dažus ierobežojumus

Dekoratori ļauj ietīt Python funkcijas, lai programmatiski mainītu viņu rīcību. Iepriekš dekoratori varēja sastāvēt tikai no @ simbola, nosaukuma (piem., func) vai punktētu nosaukumu (func.metode) un pēc izvēles vienu zvanu (func.metode (arg1, arg2)). Izmantojot Python 3.9, dekoratori tagad var sastāvēt no jebkuras derīgas izteiksmes.

Viens ilgstošs veids, kā apiet šo ierobežojumu, bija izveidot funkciju vai lambda izteiksmi, kas būtu sarežģītāka izteiksme, ja to izmantotu kā dekoratoru. Tagad derēs jebkura izteiksme ar nosacījumu, ka tā dod kaut ko tādu, kas var darboties kā dekorators.

Jaunas Python tipa operācijas

Pēdējās versijās Python ir paplašinājis atbalstu tipu norādēm. Tas galvenokārt ir paredzēts šķiedru un kodu pārbaudītāju labā; veidi netiek izpildīti izpildlaikā CPython, un nav plānots padarīt Python par statiski ierakstītu valodu. Bet tipa norādījumi ir spēcīgs rīks, lai nodrošinātu konsekvenci lielās koda bāzēs, tāpēc Python kods joprojām var gūt labumu no tipa padomiem.

Divas jaunas iezīmju un tipu piezīmju iespējas iekļuva Python 3.9. Vienā veida tipu padomi kolekciju saturam, piemēram, sarakstiem un vārdnīcām, tagad ir pieejami Python. Tas nozīmē, ka jūs, piemēram, varat aprakstīt sarakstu kā saraksts [int] - veselu skaitļu saraksts - bez nepieciešamības rakstīšana bibliotēka to darīt.

Otrais Python rakstīšanas mehānismu papildinājums ir elastīga funkcija un mainīgas anotācijas. Tas ļauj izmantot Anotēta tips, lai aprakstītu tipu, izmantojot metadatus, kurus var pārbaudīt pirms laika (izmantojot savārstīšanas rīkus) vai izpildlaikā. Piemēram, Anotēta [int, ctype ("char")] varētu izmantot, lai aprakstītu veselu skaitli, kas jāuzskata par a char ierakstiet C. Pēc noklusējuma Python neko nedarīs ar šādu anotāciju, taču to varēja izmantot kodu kodi.

Python iekšējo uzlabojumi

Python iekšējo ierīču tīrīšana, uzlabošana un modernizēšana ir pastāvīga Python izstrādātāju iniciatīva, un Python 3.9 šajā ziņā ir veiktas vairākas izmaiņas.

Pirmais ir moduļu mijiedarbības ar importa mašīnām pārveidošana. Python paplašinājuma moduļi, kas rakstīti C, tagad var izmantot jaunu ielādes mehānismu, kas liek tiem vairāk darboties kā parastajiem Python moduļiem, kad tos importē. Vairāki moduļi Python standarta bibliotēkā nesen atbalsta šo darbību: _abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, operators, resurss, laiks, _weakref. Jaunais iekraušanas mehānisms ļauj ne tikai elastīgāk apstrādāt paplašināšanas moduļus ar Python, bet arī ļauj izveidot jaunas iespējas, piemēram, uzlabotas saites.

Otrā tīrīšanas iniciatīva ir stabils CPython iekšējais ABI, kas garantē visu Python 3 kalpošanas laiku. Vēsturiski katra galvenā Python pārskatīšana ir bijusi ABI nesaderīga ar iepriekšējām versijām, un katrai jaunai versijai ir nepieciešams atkārtoti kompilēt paplašinājuma moduļus. Turpmāk visi paplašinājumu moduļi, kas izmanto stabilu ABI, darbosies visās Python versijās. Izmantojot Python 3.9, šādi moduļi standarta bibliotēkā izmanto stabilu ABI: audioop, ast, grp, _hashlib, pwd, _posixsubprocess, nejaušs, atlasīts, struct, termios, zlib.

Citas izmaiņas Python 3.9

  • Python standarta bibliotēka tagad atbalsta IANA laika joslu datu bāzi. Minētā datu bāze ir labi uzturēta un plaši izmantota, un tiešs veids, kā to izmantot Python datuma bibliotēkā, būs liels, daudz laika taupošs.
  • Jaunas virkņu metodes ļauj viegli noņemt prefiksus un sufiksus. Šis ir viens no izplatītākajiem ikdienas lietošanas scenārijiem, kas prasīja nedaudz pārāk daudz katlu, nekā šķita nepieciešams. Jauno .removeprefix () un .removesuffix () metodes atgriež modificētu virknes kopiju, atskaitot attiecīgo prefiksu vai sufiksu, ja vien tās pastāv virknē.

Kā darīt vairāk ar Python

  • 4 Python tipa pārbaudītāji, lai jūsu kods būtu tīrs
  • Python stils: 5 rīki, lai notīrītu jūsu Python kodu
  • Kā strādāt ar Python saraksta datu tipu
  • Kā iesaiņot Python lietotnes ar BeeWare portfeli
  • Kā palaist Anakondu plecu pie pleca ar citiem pitoniem
  • Kā izmantot Python datu klases
  • Sāciet darbu ar asinhronizāciju Python
  • Kā lietot asyncio Python
  • 3 soļi līdz Python asinhronajam remontam
  • Kā izmantot PyInstaller, lai izveidotu Python izpildāmos failus
  • Cython apmācība: kā paātrināt Python
  • Kā instalēt Python viedajā veidā
  • Kā pārvaldīt Python projektus, izmantojot dzeju
  • Kā pārvaldīt Python projektus ar Pipenv
  • Virtualenv un venv: paskaidrotas virtuālās Python vides
  • Python virtualenv un venv do's un don'ts
  • Paskaidrots Python vītne un apakšprocesi
  • Kā izmantot Python atkļūdotāju
  • Kā izmantot Timeit, lai profilētu Python kodu
  • Kā izmantot cProfile Python koda profilēšanai
  • Kā konvertēt Python uz JavaScript (un atkal atpakaļ)
$config[zx-auto] not found$config[zx-overlay] not found