Tar éis bliana d'fhorbairt eisiúint shuntasach teanga ríomhchlárúcháin . Ba é Python 3.9 an chéad scaoileadh tar éis tionscadal ar ullmhú agus tacú le heisiúintí. Ginfear eisiúintí móra nua uair sa bhliain anois, agus eiseofar nuashonruithe ceartaitheacha gach dhá mhí. Tabharfar tacaíocht do gach brainse suntasach ar feadh bliana go leith, agus ina dhiaidh sin déanfar trí bliana go leith eile a fhorbairt chun leochaileachtaí a shocrú.
Tosaíonn obair ar bhrainse nua anois cúig mhí roimh scaoileadh an chéad bhrainse eile, i.e. i gcomhthráth le scaoileadh Python 3.9 tástáil alfa ar bhrainse Python 3.10. Beidh brainse Python 3.10 i scaoileadh alfa ar feadh seacht mí, agus cuirfear gnéithe nua leis agus socrófar fabhtanna lena linn. Tar éis seo, déanfar na leaganacha béite a thástáil ar feadh trí mhí, agus cuirfear cosc ar ghnéithe nua a chur leis agus tabharfar aird ar fad ar fhabhtanna a shocrú. An dá mhí dheireanacha roimh an scaoileadh, beidh an brainse ag céim an iarrthóra scaoilte, ag a ndéanfar an cobhsú deiridh.
i Python 3.9:
- I bhfoclóirí sainithe ag baint úsáide as an rang dict ionsuite, tacaíocht d'oibreoirí cumasc "|" agus nuashonruithe "|=", a chomhlánaíonn na modhanna {**d1, **d2} agus dict.update a moladh roimhe seo chun foclóirí a chumasc.
>>> x = { "eochair1": "luach1 ó x", "eochair2": "luach2 ó x"}
>>> y = { "eochair2": "luach2 ó y", "eochair3": "luach3 ó y"}>>> x | y
{ 'eochair1': 'luach1 ó x', 'eochair2': 'luach2 ó y', 'eochair3': 'luach3 ó y'}>>> y | x
{ 'eochair2': 'luach2 ó x', 'eochair3': 'luach3 ó y', 'eochair1': 'luach1 ó x'} - Áirítear sa bhailiúchán cineálacha ionsuite liosta, dict, agus tuple, ar féidir iad a úsáid mar bhunchineálacha gan allmhairiú ón modúl clóscríofa. Iad siúd. in ionad typing.List, typing.Dict agus typing.Tuple is féidir leat a shonrú anois
liostaigh, dict agus tuple:def greet_all(ainmneacha: liosta[str]) -> Dada:
le haghaidh ainm in ainmneacha:
print("Dia duit", ainm) - uirlisí solúbtha chun feidhmeanna agus athróga a anótáil. Chun nótaí a cheangal, tá cineál nua Anótáilte curtha leis an modúl clóscríofa, ag cur leis na cineálacha atá ann cheana féin le meiteashonraí breise is féidir a úsáid le haghaidh anailíse statach nó le haghaidh leas iomlán a bhaint as am rite. Chun teacht ar mheiteashonraí ón gcód, cuireadh an paraiméadar include_extras leis an modh typing.get_type_hints().
charType = Annotated[int, ctype("char")] UnsignedShort = Annotated[int, struct2.ctype('H')]
- riachtanais ghramadaí do mhaisitheoirí - slonn ar bith atá oiriúnach le húsáid i mblocanna agus más féidir iad a úsáid mar mhaisitheoir anois. Chuir an t-athrú feabhas suntasach ar inléiteacht an chóid PyQt5 agus rinne sé cothabháil an mhodúil seo a shimpliú:
Bhí sé:
cnaipe_0 = cnaipí[0] @cnaipe_0.cliceáilte.ceangailAnois is féidir leat scríobh:
@cnaipí[0].cliceáil.connect - Go dtí an leabharlann caighdeánach modúl , lena n-áirítear faisnéis ó bhunachar sonraí crios ama IANA.
>>> ó zoneinfo allmhairiú ZoneInfo
>>> ó datetime allmhairiú datetime, timedelta
>>> # Am samhraidh
>>> dt = datetime(2020, 10, 31, 12, tzinfo=ZoneInfo("Meiriceá/Los_Angeles"))
>>> priontáil(dt)
2020-10-31 12:00:00-07:00>>> dt.tzname()
'PDT'>>> # Am caighdeánach
>>> dt += timedelta(laethanta=7)
>>> priontáil(dt)
2020-11-07 12:00:00-08:00>>> print(dt.tzname())
PST - Cuireadh modúl graphlib leis, ina bhfuil tacaíocht do shórtáil topological graif.
- modhanna nua chun réimíreanna agus deirí líne a bhaint - str.removeprefix(réimír) agus str.removesuffix(iarmhír). Tá modhanna curtha le str, bearta, bytearray agus collections.UserString objects.
>>> s = "FooBar"
>>> s.removeprefix("Foo")
'barra' - parsálaí nua (Gramadach Slonn Parsála), a tháinig in ionad an pharsálaí . Mar gheall ar úsáid an pharsálaí nua bhíothas in ann fáil réidh le cuid de na “hacks” a úsáideadh chun na srianta in LL(1) a sheachbhóthar, agus laghdaigh sé go mór na costais saothair chun an parsálaí a chothabháil. I dtéarmaí feidhmíochta, tá an parsálaí nua thart ar an leibhéal céanna leis an gceann roimhe seo, ach tá sé go mór chun tosaigh air i dtéarmaí solúbthachta, rud a ligeann duit a bheith níos saor agus tú ag dearadh gnéithe nua teanga. Coinnítear an seanchód parsálaí faoi láthair agus is féidir é a sheoladh ar ais leis an mbratach "-X oldparser" nó an athróg timpeallachta "PYTHONOLDPARSER=1", ach bainfear é i scaoileadh 3.10.
- an cumas do mhodhanna sínte C rochtain a fháil ar staid na modúl ina bhfuil siad sainithe ag baint úsáide as dícheartú pointeora díreach in ionad staid an mhodúil a chuardach ag baint úsáide as an bhfeidhm PyState_FindModule. Ligeann an t-athrú duit feidhmíocht mhodúil C a mhéadú trí laghdú nó deireadh a chur go hiomlán leis an bhforchostas a bhaineann le staid an mhodúil a sheiceáil. Chun modúl a chomhcheangal le haicme, moltar an fheidhm C PyType_FromModuleAndSpec(), chun an modúl agus a staid a fháil, moltar na feidhmeanna C PyType_GetModule() agus PyType_GetModuleState(), agus chun modh rochtana a sholáthar don rang ina bhfuil sé sainithe, moltar an C-function PyCMethod agus an bhratach METH_METHOD .
- Bailitheoir truflais ó bhailiúcháin a ghlasáil ina bhfuil réada athbheochainte a fhanann inrochtana go seachtrach tar éis rith an chríochnaitheora.
- Modh curtha leis , a cheadaíonn fochóras eithne Linux "pidfd" a úsáid chun an staid athúsáide PID a láimhseáil (baineann pidfd le próiseas ar leith agus ní athraíonn sé, agus is féidir PID a bheith bainteach le próiseas eile tar éis don phróiseas reatha a bhaineann leis an PID sin a fhoirceannadh ).
- Nuashonraíodh an tacaíocht don tsonraíocht Unicode go leagan 13.0.0.
- díbeartha agus an t-ateangaire Python á athbhunú sa phróiseas céanna.
- Tá feidhmíocht an raon cineálacha ionsuite, tuple, set, reoiteset, liosta agus dict optamaithe. trí úsáid a bhaint as prótacal aicearra Vectorcall chun rochtain níos tapúla ar réada atá scríofa sa teanga C.
- Bogadh na modúil _abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, oibreoir, acmhainn, am agus _weakref chuig luchtú ó .
- Tiontaíodh na modúil chaighdeánacha leabharlainne audioop, ast, grp, _hashlib, pwd, _posixsubprocess, random, select, struct, termios agus zlib le húsáid srianta , a réitíonn an fhadhb a bhaineann le hinoibritheacht tionóil de mhodúil síneadh le haghaidh leaganacha éagsúla de Python (agus an leagan á nuashonrú, ní gá modúil síneadh a atógáil, agus beidh modúil arna dtiomsú le haghaidh 3.9 in ann oibriú sa bhrainse 3.10).
- Tá tacaíocht laghdaithe ag an modúl asyncio don pharaiméadar reuse_address mar gheall ar shaincheisteanna slándála a d’fhéadfadh a bheith ann (le húsáid SO_REUSEADDR do UDP ar Linux ceadaíonn próisis éagsúla soicéid éisteachta a cheangal le calafort UDP).
- Cuireadh leas iomlán a bhaint as nua, mar shampla, feidhmíocht fheabhsaithe láimhseálaithe comharthaí in iarratais il-snáithithe, luas méadaithe an mhodúil fophróisis i dtimpeallacht FreeBSD, agus sannadh athróg shealadach níos tapúla (athróg a shannadh sa slonn “do y in [expr ]” anois chomh oirfideach leis an slonn “y = expr”). Go ginearálta, an chuid is mó tástálacha laghdú feidhmíochta i gcomparáid le brainse 3.8 (ní bhreathnaítear ar luasú ach amháin sna trialacha write_local agus write_deque):
Leagan Python 3.4 3.5 3.6 3.7 3.8 3.9
————— — — — — —Rochtain léite inathraithe agus tréithe:
léamh_áitiúil 7.1 7.1 5.4 5.1 3.9 4.0
léamh_neamháitiúil 7.1 8.1 5.8 5.4 4.4 4.8
léamh_domhanda 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
léigh_classvar_ó_rang 25.6 26.5 20.7 19.5 18.4 18.6
léigh_classvar_ó_instance 22.8 23.5 18.8 17.1 16.4 20.1
read_instancevar 32.4 33.1 28.0 26.3 25.4 27.7
read_instancevar_sliotáin 27.8 31.3 20.8 20.8 20.2 24.5
read_namedtuple 73.8 57.5 45.0 46.8 18.4 23.2
léite_boundmodh 37.6 37.9 29.6 26.9 27.7 45.9Rochtain scríofa inathraithe agus tréithe:
scríobh_áitiúil 8.7 9.3 5.5 5.3 4.3 4.2
scríobh_neamháitiúil 10.5 11.1 5.6 5.5 4.7 4.9
scríobh_domhanda 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
write_instancevar 44.6 45.8 40.0 38.9 35.5 40.7
write_instancevar_sliotáin 35.6 36.1 27.3 26.6 25.7 27.7Rochtain léite struchtúr sonraí:
read_list 24.2 24.5 20.8 20.8 19.0 21.1
léamh_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
léamh_strdict 22.6 24.3 19.5 21.2 18.9 21.6Rochtain scríofa ar shonraí:
write_list 27.1 28.5 22.5 21.6 20.0 21.6
scríobh_deque 28.7 30.1 22.7 21.8 23.5 23.2
scríobh_dict 31.4 33.3 29.3 29.2 24.7 27.8
scríobh_strdict 28.4 29.9 27.5 25.2 23.1 29.8Oibríochtaí cruachta (nó scuaine):
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.5Lúb ama:
loop_overhead 0.5 0.6 0.4 0.3 0.3 0.3 - go leor feidhmeanna agus modhanna Python 2.7 a bhí imithe i léig roimhe seo agus a raibh Rabhadh Dímheasa mar thoradh orthu san eisiúint roimhe seo, lena n-áirítear an modh unescape() i html.parser.HTMLParser,
tostring() agus fromstring() in eagar.array, isAlive() in threading.Thread, getchildren() agus getiterator() in ElementTree, sys.getcheckinterval(), sys.setcheckinterval(), asyncio.Task.current_task(), asyncio.Task.all_tasks(), base64.encodestring() agus base64.decodestring().
Foinse: oscailtenet.ru
