Ntọhapụ nke asụsụ mmemme Python 3.9

Mgbe otu afọ mmepe gasịrị ọkọnọ ntọhapụ asụsụ mmemme dị mkpa Python 3.9. Python 3.9 bụ ntọhapụ mbụ ka emechara ntughari oru ngo na okirikiri ọhụrụ nkwadebe na nkwado nke ntọhapụ. A ga-ewepụta mbipụta ọhụrụ ọhụrụ otu ugboro n'afọ, a ga-ewepụtakwa mmelite mmezi kwa ọnwa abụọ. A ga-akwado alaka ọ bụla dị ịrịba ama maka otu afọ na ọkara, mgbe nke ahụ gasịrị, a ga-emepụta afọ atọ na ọkara ọzọ maka ya iji dozie adịghị ike.

Ọrụ na alaka ọhụrụ amalitela ọnwa ise tupu e wepụta alaka ụlọ ọrụ na-esote, ya bụ. dabara na ntọhapụ nke Python 3.9 malitere ule alfa nke Python 3.10 alaka. Alaka Python 3.10 ga-adị na ntọhapụ alfa ruo ọnwa asaa, n'oge nke a ga-agbakwunye atụmatụ ọhụrụ yana dozie ahụhụ. Mgbe nke a gasịrị, a ga-anwale ụdị beta maka ọnwa atọ, n'ime oge a ga-amachibido ịgbakwunye atụmatụ ọhụrụ na a ga-akwụ ụgwọ niile maka idozi ahụhụ. Ọnwa abụọ gara aga tupu ntọhapụ, alaka ụlọ ọrụ ahụ ga-adị na ọkwa ntọhapụ, nke a ga-eme nkwụsi ike ikpeazụ.

N'etiti agbakwunyere ihe ọhụrụ na Python 3.9:

  • N'ime ọkọwa okwu akọwara site na iji klas dict arụnyere n'ime ya, pụtara nkwado maka ndị ọrụ jikọtara ọnụ "|" na "|="mmelite, nke na-emeju {**d1, **d2} na ụzọ dict.update ndị akwadoburu maka ijikọ ọkọwa okwu.

    >>> x = {"key1": "uru1 si x", "key2": "uru2 si x"}
    >>> y = {"key2": "uru2 sitere na y", "key3": "uru3 sitere na y"}

    >>> x | y
    {'key1': 'uru1 sitere na x', 'key2': 'uru2 sitere na y', 'key3': 'uru3 sitere na y'}

    >>> y | x
    {'key2': 'uru2 sitere na x', 'key3': 'uru3 sitere na y', 'key1': 'uru1 sitere na x'}

  • Nchịkọta ụdị arụnyere n'ime ya gụnyere ndepụta, dict, na tuple, nke enwere ike iji dị ka ụdị ntọala na-ebubataghị site na mpempe akwụkwọ. Ndị ahụ. kama pịnye
    naanị ndepụta, dict na tuple:

    def greet_all (aha: ndepụta [str]) -> Ọ dịghị:
    maka aha n'aha:
    ebipụta ("Ndewo", aha)

  • Enyere ya ngwaọrụ na-agbanwe agbanwe maka ịkọwapụta ọrụ na mgbanwe. Maka itinye nkọwa, agbakwunyere ụdị nkọwa ọhụrụ na modul mpịnye, na-agbatị ụdị dị ugbu a yana metadata agbakwunyere nke enwere ike iji maka nyocha kwụ ọtọ ma ọ bụ maka nkwalite oge ọsọ. Iji nweta metadata sitere na koodu, agbakwunyela paramita gụnyere_extras na usoro typing.get_type_hints().

    charType = Annotated[int, ctype(«char»)] UnsignedShort = Annotated[int, struct2.ctype(‘H’)]

  • Tụda ala grammatical chọrọ maka ndị na-achọ mma - okwu ọ bụla dabara adaba maka iji ma ọ bụrụ na enwere ike iji blocks ugbu a dị ka ihe ịchọ mma. Mgbanwe a mere ka agụ nke koodu PyQt5 dị mfe ma mee ka mmezi nke modul a dị mfe:

    bụ:
    button_0 = buttons[0] @button_0.clicked.connect

    Ugbu a ị nwere ike dee:
    @bọtịnụ[0].pịa.njikọ

  • Ka ọbá akwụkwọ ọkọlọtọ gbakwunyere na modul zoneinfo, nke gụnyere ozi sitere na nchekwa data mpaghara oge IANA.

    >>> si zoneinfo mbubata ZoneInfo
    >>> site na oge mbubata ụbọchị, timedelta
    >>> # Oge okpomọkụ
    >>> dt = oge ụbọchị (2020, 10, 31, 12, tzinfo=ZoneInfo("America/Los_Angeles"))
    >>> bipụta (dt)
    2020-10-31 12:00:00-07:00

    >>> dt.tzname()
    'PDT'

    >>> # Oge ọkọlọtọ
    >>> dt += timedelta (ụbọchị = 7)
    >>> bipụta (dt)
    2020-11-07 12:00:00-08:00

    >>> ebipụta (dt.tzname())
    PST

  • Modul graphlib agbakwunyere, nke emejuputa atumatu nkwado maka nhazi eserese nke topological.
  • Atụmatụ ụzọ ọhụrụ maka iwepụ prefixes na njedebe ahịrị - str.removeprefix(prefix) na str.removesuffix(suffix). Agbakwunyela ụzọ na str, bytes, bytearray na mkpokọta.Ihe onye ọrụString.

    >>> s = "FooBar"
    >>> s.removeprefix("Foo")
    'Ogwe'

  • Agụnyere ọhụrụ parser PEG (Ịkọwa Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụtọ Ụ )) , nke dochie ihe nzacha LL(1). Ojiji nke parser ọhụrụ mere ka o kwe omume ikpochapụ ụfọdụ "mbanye anataghị ikike" eji agafe ihe mgbochi na LL(1), ma belata ụgwọ ọrụ ọrụ maka idobe parser. N'ihe gbasara arụmọrụ, parser ọhụrụ ahụ dị ihe dịka ọkwa nke gara aga, mana ọ dị n'ihu ya nke ukwuu n'ihe gbasara mgbanwe, nke na-enye gị ohere inwekwu nnwere onwe mgbe ị na-emepụta atụmatụ asụsụ ọhụrụ. A na-edobe koodu nzacha ochie ugbu a ma enwere ike iweghachi ya site na iji ọkọlọtọ "-X oldparser" ma ọ bụ mgbanwe gburugburu "PYTHONOLDPARSER=1", mana a ga-ewepụ ya na ntọhapụ 3.10.
  • Enyere ya ikike maka ụzọ ndọtị C iji nweta ọnọdụ nke modulu nke akọwapụtara ha site na iji nkwụsịtụ pointer kama ịchọ steeti modul site na iji ọrụ PyState_FindModule. Mgbanwe ahụ na-enye gị ohere ịbawanye arụmọrụ nke modul C site na ibelata ma ọ bụ kpochapụ kpamkpam nke ịlele ọnọdụ modul. Iji jikọta modul na klas, a na-atụ aro C-function PyType_FromModuleAndSpec () iji nweta modul na steeti ya, a na-atụ aro C-functions PyType_GetModule () na PyType_GetModuleState () na iji nye usoro ohere ịnweta klas ahụ. N'ime nke a kọwara ya, a na-atụpụta PyCMethod ọrụ C na ọkọlọtọ METH_METHOD. .
  • Onye nchịkọta ihe mkpofu nyefere site na mkpokọta mkpochi nwere ihe emegharịrị emegharịgharị nke na-adị na mpụga ka onye ikpeazụ gachara.
  • Usoro agbakwunyere os.pidfd_oghe, nke na-enye ohere iji Linux kernel subsystem "pidfd" mee ihe iji dozie ọnọdụ PID iji mee ihe (pidfd na-ejikọta ya na usoro a kapịrị ọnụ ma ọ dịghị agbanwe agbanwe, ebe PID nwere ike jikọta ya na usoro ọzọ mgbe usoro nke ugbu a jikọtara ya na PID ahụ kwụsịrị. ).
  • Emelitela nkwado maka nkọwapụta Unicode ka ọ bụrụ ụdị 13.0.0.
  • Ewepụrụ ebe nchekwa ntapu mgbe ị na-amaliteghachi onye ntụgharị okwu Python n'otu usoro ahụ.
  • Arụmọrụ nke ụdị arụnyere n'ime oke, tuple, set, frozenset, ndepụta na dict ka emelitere. emejuputa atumatu site na iji usoro mkpirisi ụzọ mkpirisi Vectorcall maka ị nweta ngwa ngwa n'ihe edere n'asụsụ C.
  • A na-ebufe modul _abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, onye na-arụ ọrụ, akụrụngwa, oge na _weakref. mmalite n'ọtụtụ ọkwa.
  • Ụdị ọba akwụkwọ ọkọlọtọ audioop, ast, grp, _hashlib, pwd, _posixsubprocess, random, họrọ, struct, termios na zlib ka agbanweela ka ọ jiri mmachi. ABI kwụsiri ike, nke na-edozi nsogbu nke ịrụ ọrụ nke mgbakọ nke modul ndọtị maka ụdị Python dị iche iche (mgbe ị na-emelite ụdị ahụ, ọ dịghị mkpa ka e wughachi modul ndọtị, na modul chịkọtara maka 3.9 ga-enwe ike ịrụ ọrụ na ngalaba 3.10).
  • Modul asyncio ewepụla nkwado maka reuse_address paramita n'ihi nsogbu nchekwa nwere ike (iji SO_REUSEADDR maka UDP na Linux na-enye ohere ka usoro dị iche iche tinye oghere ige ntị na ọdụ ụgbọ mmiri UDP).
  • agbakwunyere njikarịcha ọhụrụ, dịka ọmụmaatụ, nkwalite arụmọrụ nke ndị na-ahụ maka mgbama na ngwa nwere ọtụtụ eriri, mmụba ọsọ nke modul usoro na gburugburu FreeBSD, yana ọrụ ngwa ngwa nke mgbanwe nwa oge (na-ekenye mgbanwe na okwu ahụ “maka y na [expr). ]" dị ugbu a dị ka okwu "y = expr"). N'ozuzu, ọtụtụ ule gosi mbelata arụmọrụ ma e jiri ya tụnyere alaka 3.8 (a na-ahụ ọsọ ọsọ naanị na ule write_local na write_deque):

    Ụdị Python 3.4 3.5 3.6 3.7 3.8 3.9
    ———————————

    Ịnweta ọgụgụ dị iche iche na njirimara:
    gụọ_mpaghara 7.1 7.1 5.4 5.1 3.9 4.0
    ọgụgụ_abụghị mpaghara 7.1 8.1 5.8 5.4 4.4 4.8
    gụọ_ụwa 15.5 19.0 14.3 13.6 7.6 7.7
    gụọ_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_instance 22.8 23.5 18.8 17.1 16.4 20.1
    ihe ọgụgụ 32.4 33.1 28.0 26.3 25.4 27.7
    read_intancevar_slots 27.8 31.3 20.8 20.8 20.2 24.5
    gụọ_aha 73.8 57.5 45.0 46.8 18.4 23.2
    usoro ọgụgụ 37.6 37.9 29.6 26.9 27.7 45.9

    Ịnweta ederede dị iche iche na njirimara:
    dee_local 8.7 9.3 5.5 5.3 4.3 4.2
    dee_nonlocal 10.5 11.1 5.6 5.5 4.7 4.9
    dee_global 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
    dee_intancevar 44.6 45.8 40.0 38.9 35.5 40.7
    write_intancevar_slots 35.6 36.1 27.3 26.6 25.7 27.7

    Nhazi data agụ ịnweta:
    ndepụta ọgụgụ 24.2 24.5 20.8 20.8 19.0 21.1
    gụọ_deque 24.7 25.5 20.2 20.6 19.8 21.6
    gụọ akwụkwọ akụkọ 24.3 25.7 22.3 23.0 21.0 22.5
    ọgụgụ_agụ 22.6 24.3 19.5 21.2 18.9 21.6

    Ịnweta nhazi ederede data:
    dee_list 27.1 28.5 22.5 21.6 20.0 21.6
    dee_deque 28.7 30.1 22.7 21.8 23.5 23.2
    dee_dict 31.4 33.3 29.3 29.2 24.7 27.8
    dee_ụkpụrụ 28.4 29.9 27.5 25.2 23.1 29.8

    Arụ ọrụ njupụta (ma ọ bụ kwụ n'ahịrị):
    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.5

    Usoro oge:
    loop_overhead 0.5 0.6 0.4 0.3 0.3 0.3

  • Ewepụrụ ọtụtụ ọrụ Python 2.7 na ụzọ ewepụrụ na mbụ wee rụpụta DeprecationWarning na mwepụta gara aga, gụnyere usoro enweghị mgbagha () na html.parser.HTMLParser,
    tostring () na fromstring () na array.array, isAlive() na threadi.Thread, getchildren () na getiterator () na ElementTree, sys.getcheckinterval(), sys.setcheckinterval(), asyncio.Task.current_task(), asyncio.Task.all_tasks (), base64.encodestring () na base64.decodestring ().

isi: opennet.ru

Tinye a comment