Տեղի է ունեցել 1.5 տարվա մշակման աշխատանքներից հետո նշալի թողարկում ծրագրավորման լեզվի . Python 3.8 ճյուղի ուղղումային թարմացումները թողարկել 18 ամսվա ընթացքում: Critical vulnerabilities will be fixed until October 2024 for 5 years. The correction updates for version 3.8 will be released every two months, with the first correction release of Python 3.8.1 scheduled for December.
Ավելացված :
- բարդ արտահայտությունների ներսում փոխադրումների գործողություններ: Նոր «:=» օպերատորի շնորհիվ հնարավոր է իրականացնել արժեքների փոխադրումներն այլ արտահայտություններում, օրինակ՝ կրկնակի գործողությունից խուսափելու համար պայմանական արտահայտություններում և ցիկլերի սահմանման ժամանակ:
if (n := len(a)) > 10:
…while (block := f.read(256)) != '' :
… - ընթացակարգի նոր սինտաքսը: ֆունկցիայի սահմանման ժամանակ արգումենտները ցուցակելու ժամանակ այժմ կարելի է նշել «/» հաշիվը, որը թույլ է տալիս բաժանել այն արգումենտները, որոնց արժեքները կարելի է վերագրել միայն ըստ նշված կարգի, և այն արգումենտները, որոնք թույլատրվում են ցանկացած կարգով (սինտաքս «փոխադրող=արժեք»): Բարձրակարգում այս նոր հնարավորությունը Python լեզվով ֆունկցիաներում թույլ է տալիս ամբողջովին արհեստականորեն էմուլյացնել C լեզվով գոյություն ունեցող ֆունկցիաների վարքագիծը, ինչպես նաև խուսափել կոնկրետ անունների կապերից, օրինակ, եթե параметրի անունը նախատեսվում է փոխել ապագայում:
«/» դրոշը լրացնում է նախորդում ավելացված «*» հաշիվը, որը բաժանում է փոփոխականները, որոնց համար կիրառելի է միայն «փոխադրող=արժեք» ձևը: Օրինակ, «def f(a, b, /, c, d, *, e, f):» ֆունկցիայում «a» և «b» փոփոխականները կարող են վերագրվել միայն ըստ նշված արժեքների
«e» և «f» փոփոխականները միայն «փոխադրող=արժեք» միջոցով, իսկ «c» և «d» փոփոխականները կարող են վերագրավել նշված որևէ ձևով:f(10, 20, 30, 40, e=50, f=60)
f(10, 20, c=30, d=40, e=50, f=60) - նոր C API
Python-ի ղեկավարման պարամետրերի կարգավորելու համար, որն ամբողջովին վերահսկում է ողջ և տրամադրում է ընդլայնված սխալների մշակման մեթոդներ: Բերված API-ն հեշտացնում է Python-ի մեկնարկման ֆունկցիայի ներդրումը այլ C լեզվով ծրագրերում; - նոր Vectorcall արձանագրություն՝ ավելի արագ հասանելիություն C լեզվով գրած օբյեկտներին: CPython 3.8-ում Vectorcall-ի հասանելիությունը սահմանափակ է մինչ այժմ՝ ներքին օգտագործման համար, հանրային հասանելի API-ի անցման ծրագիրը նախատեսված է CPython 3.9-ում;
- Runtime Audit Hooks-ի կանչեր, որոնք տրամադրում են Python լեզվով ծրագրերին և շրջանակներին ցածր մակարդակի տեղեկություններ սցենարի կատարումը տեսնելու համար, որպեսզի հնարավոր լինի Audit որակական միջոցառումները (օրինակ՝ կարելի է հետևել մոդուլների ներմուծմանը, ֆայլերի բացմանը, տարանցման օգտագործմանը, ցանցային ազդակների կանչերին, exec, eval և run_mod-ից կոդիածի մշակման ժամանակ);
- ngx_stream_ssl_preread մոդուլում ներդրվել է ‘ Պիկլի 5 պրոտոկոլի աջակցություն, որը օգտագործվում է օբյեկտների սերիալացման և սերիալիզացման համար։ Պիկլը հնարավորություն է տալիս օպտիմալացնել մեծ ծավալների տվյալների փոխանցումը Python գործընթացների միջև մուլտյակարգային և բազմահատված շարվածքների կոնֆիգուրացիաներում՝ նվազեցնելով հիշողության պատճենավորման գործողությունների թիվը և կիրառելով լրացուցիչ օպտիմիզացման տեխնիկաներ, ինչպիսիք են տվյալների համար հատուկ տարբերալման ալգորիթմների կիրառումը։ Պրոտոկոլի հինգերորդ տարբերակը առանձնանում է բաժանված փոխանցման (out-of-band) ռեժիմի ավելացմամբ, երբ տվյալները կարող են փոխանցվել առանձին հիմնական pickle ռազմավարությունից։
- Միացրած է չորրորդ Պիկլի պրոտոկոլը, որը համեմատաբար նախորդ՝ երրորդ տարբերակի հետ, թույլ է տալիս ստանալ ավելի բարձր կատարողականություն և նվազեցնել փոխանցվող տվյալների չափը։
- ngx_stream_ssl_preread մոդուլում ներդրվել է ‘ ներկայացվել են մի շարք նոր հնարավորություններ՝
- Կլաս կապակցված ցանկերի համար, որոնց ստացման տվյալների ընթացքում հստակ նշվում է դասի մասին տեղեկատվություն («TypedDict(‘Point2D’, x=int, y=int, label=str)»):
- Տեսակ , որը թույլ է տալիս սահմանափակել պարամետրը կամ վերադարձվող արժեքը մի քանի նախընտրած արժեքներով («Literal[‘connected’, ‘disconnected’]»):
- Կառուցվածք ««, որը հնարավորություն է տալիս սահմանել փոփոխականների, ֆունկցիաների, մեթոդների և դասերի արժեքները, որոնք չեն կարող փոխվել կամ վերաքաղվել («pi: Final[float] = 3.1415926536»):
- Ավելացել է հնարավորությունը փոխcacheի ից կոմպիլյացված հաստատուն ֆայլերը, որոնք պահվում են առանձին ֆայլային համակարգերում և առանձին կոդային կատեգորիաներից։ Հաստատուն ֆայլերի պահպանման ճանապարհը սահմանվում է միջոցով փոփոխականի կամ «-X pycache_prefix» տարբերակով։
- հնարավորություն ստեղծելու Python-ի դեբագի կառուցվածքները, որոնք օգտագործում են նույն ABI-ն որպես թողարկումը, ինչը հնարավորություն է տալիս դեբագ նիշերի մեջ ներբեռնել C լեզվով գրված ընդլայնումներ, ովքեր հավաքվել են կայուն թողարկումների համար։
- f-ստորակներում (ֆորմատավորված լիտերալները ‘f’ նախապաշարումով) ապահովվել է «=» օպերատորի աջակցություն (օրինակ՝ «f'{expr=}'»), որը թույլ է տալիս արտահայտությունը փոփոխել տեքստում՝ դեբագում շահավետության համար։ Օրինակ՝
››› user = ‘eric_idle’
››› member_since = date(1975, 7, 31)
››› f'{user=} {member_since=}'
«user=’eric_idle’ member_since=datetime.date(1975, 7, 31)» - Արտահայտությունը «» թույլատրվում է օգտագործել « ;
- Ավելացած նոր մոդուլը , որը հնարավորություն է տալիս օգտագործել ընդհանուր հիշողության սեգմենտները բազմագործառո խմբերի կոնֆիգուրացիաներում։
- Windows հարթակում asyncio-ի իրականացումը տեղափոխվել է ProactorEventLoop դասի օգտագործման։ ;
- qimgv 0.8.6 պատկերների դիտման թողարկում
Ընտանիք: opennet.ru
