Lẹhin ọdun kan ti idagbasoke itusilẹ ede siseto pataki . Python 3.9 jẹ idasilẹ akọkọ lẹhin ise agbese lori igbaradi ati atilẹyin awọn idasilẹ. Awọn idasilẹ pataki tuntun yoo jẹ ipilẹṣẹ lẹẹkan ni ọdun, ati pe awọn imudojuiwọn atunṣe yoo jẹ idasilẹ ni gbogbo oṣu meji. Ẹka pataki kọọkan yoo ni atilẹyin fun ọdun kan ati idaji, lẹhinna ọdun mẹta ati idaji miiran yoo ṣe idagbasoke fun lati ṣatunṣe awọn ailagbara.
Iṣẹ́ lórí ẹ̀ka ọ́fíìsì tuntun kan bẹ̀rẹ̀ ní báyìí oṣù márùn-ún kí ẹ̀ka ọ́fíìsì tó tẹ̀ lé jáde, ie. ni ibamu pẹlu itusilẹ ti Python 3.9 igbeyewo alpha ti ẹka Python 3.10. Ẹka Python 3.10 yoo wa ni itusilẹ alpha fun oṣu meje, lakoko eyiti awọn ẹya tuntun yoo ṣafikun ati awọn idun ti o wa titi. Lẹhin eyi, awọn ẹya beta yoo ni idanwo fun oṣu mẹta, lakoko eyiti fifi awọn ẹya tuntun kun yoo ni idinamọ ati pe gbogbo akiyesi yoo san si atunṣe awọn idun. Awọn oṣu meji to kọja ṣaaju itusilẹ, ẹka naa yoo wa ni ipele oludije itusilẹ, ninu eyiti imuduro ipari yoo ṣee ṣe.
ni Python 3.9:
- Ninu awọn itumọ-itumọ nipa lilo kilasi dict ti a ṣe sinu, atilẹyin fun awọn oniṣẹ iṣẹ-ṣiṣe "|" ati "|=" awọn imudojuiwọn, eyi ti o ni ibamu pẹlu {**d1, **d2} ati awọn ọna dict.update ti a dabaa tẹlẹ fun iṣakojọpọ awọn iwe-itumọ.
>>> x = {"key1": "iye1 lati x", "key2": "iye2 lati x"}
>>> y = {"key2": "iye2 lati y", "key3": "iye3 lati y"}>>> x | y
{'bọtini1': 'iye1 lati x', 'bọtini2': 'iye2 lati y', 'bọtini3': 'iye3 lati y'}>>> y | x
{'bọtini2': 'iye2 lati x', 'bọtini3': 'iye3 lati y', 'bọtini1': 'iye1 lati x'} - Awọn akojọpọ ti a ṣe sinu rẹ pẹlu atokọ, dict, ati tuple, eyiti o le ṣee lo bi awọn iru ipilẹ laisi gbigbe wọle lati inu module titẹ. Awon. dipo titẹ.Akojọ, titẹ.Dict ati titẹ.Tuple o le pato pato
o kan akojọ, dict ati tuple:def greet_all (awọn orukọ: akojọ [str]) -> Kò:
fun orukọ ni awọn orukọ:
tẹjade ("Hello", orukọ) - rọ irinṣẹ fun annotating awọn iṣẹ ati awọn oniyipada. Fun sisopọ awọn asọye, iru Itọkasi tuntun ti ni afikun si module titẹ, ti n fa awọn iru ti o wa pẹlu afikun metadata ti o le ṣee lo fun itupalẹ aimi tabi fun awọn iṣapeye akoko-ṣiṣe. Lati wọle si metadata lati koodu, a ti ṣafikun paramita inkluderer_extras si ọna titẹ.get_type_hints().
charType = Akọsilẹ[int, ctype("char")] UnsignedShort = Akọsilẹ[int, struct2.ctype('H')]
- Awọn ibeere girama fun awọn alaṣọṣọ - eyikeyi ikosile ti o dara fun lilo ninu ti ati lakoko awọn bulọọki le ṣee lo bi ohun ọṣọ. Iyipada naa ṣe ilọsiwaju kika kika ti koodu PyQt5 ati pe o rọrun itọju module yii:
je:
button_0 = awọn bọtini [0] @button_0.clicked.connectBayi o le kọ:
@awọn bọtini[0].tẹ.connect - Si awọn boṣewa ìkàwé modulu , eyiti o pẹlu alaye lati ibi ipamọ data agbegbe aago IANA.
>>> lati agbegbe Zoneinfo gbe wọle ZoneInfo
>>> lati akoko agbewọle ọjọ akoko, timedelta
>>> # Ooru akoko
>>> dt = aago (2020, 10, 31, 12, tzinfo=Agbegbe Alaye("Amẹrika/Los_Angeles"))
>>> titẹ (dt)
2020-10-31 12:00:00-07:00>>> dt.tzname()
'PDT'>>> # Standard akoko
>>> dt += timedelta(ọjọ=7)
>>> titẹ (dt)
2020-11-07 12:00:00-08:00>>> titẹ (dt.tzname())
PST - Fi kun graphlib module, ninu eyiti support fun topological ayokuro ti awọn aworan.
- awọn ọna tuntun fun yiyọ awọn asọtẹlẹ ati awọn ipari laini kuro - str.removeprefix (iṣaaju) ati str.removesuffix (suffix). Awọn ọna ti a ti fi kun si str, awọn baiti, bytearray ati collections.UserString ohun.
>>> s = "FooBar"
>>> s.removeprefix("Foo")
' Pẹpẹ' - titun parser (Parsing Expression Grammar), eyiti o rọpo parser . Lilo parser tuntun jẹ ki o ṣee ṣe lati yọkuro diẹ ninu awọn “hakii” ti a lo lati fori awọn ihamọ ni LL(1), ati pe o dinku awọn idiyele iṣẹ ni pataki fun mimu parser naa. Ni awọn ofin ti iṣẹ, parser tuntun jẹ isunmọ ni ipele kanna bi ti iṣaaju, ṣugbọn o wa ni pataki niwaju rẹ ni awọn ofin ti irọrun, eyiti o fun ọ laaye lati ni ominira diẹ sii nigbati o n ṣe apẹrẹ awọn ẹya ede tuntun. Koodu parser atijọ ti wa ni idaduro fun bayi ati pe o le pada ni lilo asia "-X oldparser" tabi "PYTHONOLDPARSER=1" oniyipada ayika, ṣugbọn yoo yọkuro ni idasilẹ 3.10.
- agbara fun awọn ọna itẹsiwaju C lati wọle si ipo ti awọn modulu ninu eyiti wọn ti ṣe asọye nipa lilo ifasilẹ itọka taara dipo wiwa ipo module nipa lilo iṣẹ PyState_FindModule. Iyipada naa ngbanilaaye lati mu iṣẹ ti awọn modulu C pọ si nipa idinku tabi imukuro ipari ti iṣayẹwo ipo module. Lati so a module pẹlu a kilasi, ti wa ni dabaa C-iṣẹ PyType_FromModuleAndSpec () lati gba module ati awọn oniwe-ipinle, C-iṣẹ PyType_GetModule () ati PyType_GetModuleState () dabaa, ati ki o pese ọna kan pẹlu wiwọle si awọn kilasi. ninu eyiti o ti ṣe asọye, PyCMethod iṣẹ C ati asia METH_METHOD ni imọran.
- Idọti-odè lati awọn ikojọpọ titiipa ti o ni awọn ohun ti a tunṣe ninu ti o wa ni iraye si ita lẹhin ṣiṣe ipari ipari.
- Ọna ti a ṣafikun , eyiti ngbanilaaye eto ipilẹ ekuro Linux “pidfd” lati mu ipo atunlo PID (pidfd ni nkan ṣe pẹlu ilana kan pato ati pe ko yipada, lakoko ti PID le ni nkan ṣe pẹlu ilana miiran lẹhin ilana lọwọlọwọ ti o ni nkan ṣe pẹlu PID naa pari. ).
- Atilẹyin fun sipesifikesonu Unicode ti ni imudojuiwọn si ẹya 13.0.0.
- Imukuro nigba ti tun bẹrẹ onitumọ Python ni ilana kanna.
- Awọn iṣẹ ti awọn iru-itumọ ti ni ibiti, tuple, ṣeto, frozenset, akojọ ati dict ti a ti iṣapeye. nipasẹ lilo ilana ọna abuja Vectorcall fun wiwọle yara yara si awọn nkan ti a kọ ni ede C.
- Awọn _abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, oniṣẹ ẹrọ, awọn oluşewadi, akoko ati _weakref modulu ti a ti gbe si ikojọpọ lati .
- Awọn modulu ile-ikawe boṣewa audioop, ast, grp, _hashlib, pwd, _posixsubprocess, ID, yan, struct, termios ati zlib ti yipada lati lo ihamọ. , eyi ti o yanju iṣoro ti iṣiṣẹ ti awọn apejọ ti awọn modulu itẹsiwaju fun awọn ẹya oriṣiriṣi ti Python (nigbati o nmu imudojuiwọn, ko si ye lati tun awọn modulu itẹsiwaju, ati awọn modulu ti a ṣajọ fun 3.9 yoo ni anfani lati ṣiṣẹ ni ẹka 3.10).
- Module asyncio ti ṣe atilẹyin atilẹyin fun paramita reuse_address nitori awọn ọran aabo ti o pọju (lilo SO_REUSEADDR fun UDP lori Linux ngbanilaaye awọn ilana oriṣiriṣi lati so awọn iho igbọran si ibudo UDP).
- Awọn iṣapeye tuntun ni a ti ṣafikun, fun apẹẹrẹ, ilọsiwaju iṣẹ ti awọn oluṣakoso ifihan agbara ni awọn ohun elo atọka pupọ, iyara pọ si ti module subprocess ni agbegbe FreeBSD, ati iṣẹ iyansilẹ yiyara ti awọn oniyipada igba diẹ (fifisilẹ oniyipada ninu ikosile “fun y ni [expr] ]” ti wa ni bayi bi oluṣe bi ikosile “y = expr”). Ni gbogbogbo, ọpọlọpọ awọn idanwo Ilọkuro iṣẹ ṣiṣe ni akawe si ẹka 3.8 (iyara ni a ṣe akiyesi nikan ni awọn idanwo write_local ati write_deque):
Python version 3.4 3.5 3.6 3.7 3.8 3.9
———————————Iyipada ati iraye si kika:
kika_agbegbe 7.1 7.1 5.4 5.1 3.9 4.0
read_nonlocal 7.1 8.1 5.8 5.4 4.4 4.8
read_agbaye 15.5 19.0 14.3 13.6 7.6 7.7
read_builtin 21.1 21.6 18.5 19.0 7.5 7.7
read_classvar_from_class 25.6 26.5 20.7 19.5 18.4 18.6
read_classvar_from_intance 22.8 23.5 18.8 17.1 16.4 20.1
read_intancevar 32.4 33.1 28.0 26.3 25.4 27.7
read_instancevar_slots 27.8 31.3 20.8 20.8 20.2 24.5
read_nametuple 73.8 57.5 45.0 46.8 18.4 23.2
ọna kika_bound 37.6 37.9 29.6 26.9 27.7 45.9Ayipada ati ikalara wiwọle kikọ:
kọ_local 8.7 9.3 5.5 5.3 4.3 4.2
Kọ_nonlocal 10.5 11.1 5.6 5.5 4.7 4.9
kikọ_agbaye 19.7 21.2 18.0 18.0 15.8 17.2
write_classvar 92.9 96.0 104.6 102.1 39.2 43.2
kikọ_intancevar 44.6 45.8 40.0 38.9 35.5 40.7
write_instancevar_slots 35.6 36.1 27.3 26.6 25.7 27.7Wiwọle ka igbekalẹ data:
read_list 24.2 24.5 20.8 20.8 19.0 21.1
read_deque 24.7 25.5 20.2 20.6 19.8 21.6
read_dict 24.3 25.7 22.3 23.0 21.0 22.5
kika_orin 22.6 24.3 19.5 21.2 18.9 21.6Eto data kọ wiwọle:
kikọ_akojọ 27.1 28.5 22.5 21.6 20.0 21.6
write_deque 28.7 30.1 22.7 21.8 23.5 23.2
Kọ_dict 31.4 33.3 29.3 29.2 24.7 27.8
kikọ_ọrọ 28.4 29.9 27.5 25.2 23.1 29.8Awọn iṣẹ ṣiṣe akopọ (tabi isinyin):
list_append_pop 93.4 112.7 75.4 74.2 50.8 53.9
deque_append_pop 43.5 57.0 49.4 49.2 42.5 45.5
deque_append_popleft 43.7 57.3 49.7 49.7 42.8 45.5Iwọn akoko:
loop_overhead 0.5 0.6 0.4 0.3 0.3 0.3 - ọpọlọpọ awọn iṣẹ Python 2.7 ati awọn ọna ti a ti parẹ tẹlẹ ati yorisi Ikilọ Ikilọ ninu itusilẹ iṣaaju, pẹlu ọna aibikita () ni html.parser.HTMLParser,
tostring () ati fromstring () ni array.array, isAlive () ni threading.Thread, getchildren () ati getiterator () ni ElementTree, sys.getcheckinterval (), sys.setcheckinterval (), asyncio.Task.current_task (), asyncio.Task.all_tasks (), base64.encodestring () ati base64.decodestring ().
orisun: opennet.ru
