I muri i te tau o te whanaketanga i tukuna te tukunga reo whakahōtaka nui Python 3.9. Ko Python 3.9 te tuku tuatahi i muri mai whakawhiti kaupapa kei runga huringa hou te whakarite me te tautoko i nga whakaputanga. Ko nga putanga nui hou ka mahia kotahi i te tau, ka tukuna nga whakahou whakatika ia rua marama. Ka tautokohia ia peka nui mo te kotahi me te hawhe tau, ka mutu ka hangaia etahi atu tau e toru me te haurua hei whakatika i nga whakaraeraetanga.
Ka timata te mahi mo te peka hou e rima marama i mua i te tukunga o te pekanga e whai ake nei, ara. i rite ki te tukunga o Python 3.9 i timata te whakamatautau alpha o te peka Python 3.10. Ka noho te peka Python 3.10 ki te tuku alpha mo nga marama e whitu, ka taapirihia nga ahuatanga hou ka whakatika nga pepeke. I muri i tenei, ka whakamatauria nga putanga beta mo nga marama e toru, i te waa ka aukatihia te taapiri i nga waahanga hou ka aro katoa ki te whakatika i nga pepeke. Ko nga marama e rua kua pahure ake nei i mua i te tukunga, ka noho te peka ki te waahi o te kaitono tuku, ka whakahaerea te whakapumautanga whakamutunga.
I roto i nga papakupu kua tautuhia ma te whakamahi i te karaehe korero i roto, puta mai tautoko mo nga kaiwhakahaere hanumi "|" me "|=" whakahōunga, e kīnaki ana i ngā tikanga {**d1, **d2} me te dict.update i whakaarohia i mua mō te hanumi papakupu.
>>> x = {"key1": "value1 from x", "key2": "value2 from x"}
>>> y = {"key2": "value2 from y", "key3": "value3 from y"}
>>> x | y
{'key1': 'value1 from x', 'key2': 'value2 from y', 'key3': 'value3 from y'}
>>> y | x
{'key2': 'value2 from x', 'key3': 'value3 from y', 'key1': 'value1 from x'}
Kei roto i te kohinga momo ko te rarangi, te dict, me te tuple, ka taea te whakamahi hei momo turanga me te kore kawemai mai i te waahanga patopato. Ko era. hei utu mo te patopato.Rārangi, patopato.Dict me te patopato.Tuple ka taea e koe te tohu inaianei
whakarārangi noa, tohu me te tuple:
def greet_all(ingoa: rārangi[str]) -> Kore:
mo te ingoa i roto i nga ingoa:
print("Kia ora", ingoa)
Ka whakaratohia nga taputapu ngawari mo te tuhi i nga mahi me nga taurangi. Mo te taapiri i nga tuhipoka, kua taapirihia he momo Tuhituhi hou ki te waahanga patopato, ka toro atu nga momo o naianei me etahi atu metadata ka taea te whakamahi mo te tātari pateko, mo te arotautanga wa-haere. Hei uru ki nga metadata mai i te waehere, kua taapirihia te tawhā include_extras ki te tikanga typing.get_type_hints().
Toned down nga whakaritenga wetereo mo nga kai-whakapaipai - ko nga kupu e tika ana mo te whakamahi i nga poraka ka taea te whakamahi inaianei hei whakapaipai. Ko te huringa i tino pai ake te panui o te waehere PyQt5 me te whakangawari i te tiaki o tenei waahanga:
Inaianei ka taea e koe te tuhi:
@pātene[0].pāwhiri.hono
Ki te whare pukapuka paerewa kua taapirihia kōwae roheinifo, kei roto nga korero mai i te papaaarangi rohe waahi IANA.
>>> mai i zoneinfo kawemai ZoneInfo
>>> mai i te datetime kawemai datetime, timedelta
>>> # Te wa raumati
>>> dt = datetime(2020, 10, 31, 12, tzinfo=ZoneInfo("America/Los_Angeles"))
>>> tā(dt)
2020-10-31 12:00:00-07:00
Kua taapirihia te kōwae graphlib, kei roto whakatinana te tautoko mo te whakariterite topological o nga kauwhata.
Ka whakaarohia tikanga hou mo te tango i nga tohumua me nga pito raina - str.removeprefix(prefix) me te str.removesuffix(suffix). Kua taapirihia nga tikanga ki te str, paita, bytearray me nga kohinga.UserString mea.
>>> s = "FooBar"
>>> s.removeprefix("Foo")
'Pae'
Kua whai waahi kaiporoporo hou titi (Parsing Expression Grammar), i whakakapi i te parser LL(1). Na te whakamahinga o te parser hou i taea ai te whakakore i etahi o nga "hacks" i whakamahia ki te karo i nga here i roto i te LL(1), me te tino whakaiti i nga utu mo nga mahi mo te pupuri i te parser. Mo te mahi, he rite tonu te ahua o te parser hou ki tera o mua, engari kei mua tonu i a ia mo te ngawari, e taea ai e koe te waatea ake i te wa e hoahoa ana i nga ahuatanga reo hou. Ka mau tonu te waehere parser tawhito mo tenei wa ka taea te whakahoki mai ma te whakamahi i te haki "-X oldparser" me te taurangi taiao "PYTHONOLDPARSER=1", engari ka tangohia i te tukunga 3.10.
Ka whakaratohia te kaha mo nga tikanga toronga C ki te uru ki te ahua o nga waahanga kua tautuhia ma te whakamahi i te tohu tohutoro tika hei utu mo te rapu i te ahua o te waahanga ma te whakamahi i te mahi PyState_FindModule. Ma te huringa ka taea e koe te whakanui ake i te mahinga o nga waahanga C ma te whakaiti, te whakakore rawa ranei i te utu mo te tirotiro i te ahua o te waahanga. Hei hono i tetahi kōwae me tetahi akomanga, ka whakaarohia te C-function PyType_FromModuleAndSpec(), ki te tiki i te kōwae me tona ahuatanga, ko nga mahi-C PyType_GetModule() me PyType_GetModuleState() ka whakaarohia, me te whakarato i tetahi tikanga uru ki te akomanga i roto i te mea e tautuhia ana, ko te PyCMethod mahi-C me te haki METH_METHOD ka whakaarohia. .
Kaikohi para tuku mai i te maukati i nga kohinga e mau ana i nga mea whakaahuru ka noho uru ki waho i muri i te whakahaerenga o te kaiwhakaoti.
Tikanga taapiri os.pidfd_open, ka taea e te Linux kernel subsystem "pidfd" te whakamahi ki te hapai i te ahuatanga o te whakamahi ano i te PID (e hono ana te pidfd ki tetahi tukanga motuhake me te kore e huri, ka taea te hono tetahi PID ki tetahi atu tukanga i muri i te tukanga o naianei e pa ana ki taua PID ka mutu. ).
Ko te tautoko mo te tohu Unicode kua whakahoutia ki te putanga 13.0.0.
I whakakorea turuturu mahara i te whakaara ano i te kaiwhakamaori Python i roto i te mahi ano.
Ko te mahinga o te awhe momo hanga-i roto, te tuple, te huinga, te frozenset, te rarangi me te dict kua arotautia. whakatinana ma te whakamahi i te kawa pokatata Vectorcall kia tere ake te uru ki nga taonga kua tuhia ki te reo C.
Kōwae _abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, operator, rauemi, wa me _weakref ka utaina mai i arawhitinga i roto i nga waahanga maha.
Ko nga waahanga pukapuka paerewa oroop, ast, grp, _hashlib, pwd, _posixsubprocess, matapōkere, tīpako, struct, termios me te zlib kua tahuri ki te whakamahi kua herea ABI pumau, e whakaoti ana i te raruraru o te whakahaerenga o nga huihuinga o nga waahanga toronga mo nga momo putanga o Python (i te wa e whakahou ana i te putanga, kaore he take ki te hanga ano i nga waahanga taapiri, me nga waahanga kua whakahiatohia mo te 3.9 ka taea te mahi i te peka 3.10).
Kua whakakorehia e te kōwae asyncio te tautoko mo te tawhā reuse_address na runga i nga take haumarutanga pea (ma te whakamahi i te SO_REUSEADDR mo te UDP i runga Linux ka taea e nga tikanga rereke te taapiri i nga turanga whakarongo ki tetahi tauranga UDP).
Kua taapirihia nga arotautanga hou, hei tauira, te pai ake o te mahi a nga kaikawe tohu i roto i nga tono miro-maha, te tere tere o te waahanga tukatuka iti i roto i te taiao FreeBSD, me te tere ake o te taurangi o nga taurangi rangitahi (whakatakoto i te taurangi i roto i te kupu "mo y i roto i [expr ]” kei te rite ki te whakaaturanga “y = expr” "). Ko te nuinga o nga whakamatautau whakaatu te hekenga mahi ka whakaritea ki te peka 3.8 (ka kitea te tere i roto i nga whakamatautau tuhi_local me te tuhi_deque):
Kua tangohia he maha nga mahi a Python 2.7 me nga tikanga i whakakorehia i mua ka puta he Whakatupato Whakakore i te tukunga o mua, tae atu ki te tikanga unescape() i html.parser.HTMLParser,
tostring() and fromstring() in array.array, isAlive() in threading.Thread, getchildren() and getiterator() in ElementTree, sys.getcheckinterval(), sys.setcheckinterval(), asyncio.Task.current_task(), asyncio.Task.all_tasks(), base64.encodestring() and base64.decodestring().