Fa'asa'olotoina o le Python 3.9 polokalame gagana

Ina ua mavae se tausaga o atinae tuuina atu fa'alauiloa gagana fa'apolokalame taua Python 3.9. Python 3.9 o le faʻasalalauga muamua lea suiga galuega faatino taamilosaga fou sauniuniga ma le lagolago o fa'amalologa. O fa'asalalauga tetele fou o le a fa'atupu fa'atasi i le tausaga, ma fa'afouga fa'asa'o o le a fa'asalalau i masina ta'i lua. O lala taua ta'itasi o le a lagolagoina mo le tasi ma le afa tausaga, a mae'a ona toe fa'aleleia lea o le isi tolu ma le afa tausaga mo le fa'aleleia o fa'aletonu.

O le galuega i se lala fou ua amata nei i le lima masina a o leʻi tatalaina le isi lala, i.e. faʻatasi ma le tuʻuina atu o le Python 3.9 amata faʻataʻitaʻiga alpha o le Python 3.10 lala. O le Python 3.10 lala o le a tuʻuina atu i le alpha release mo le fitu masina, lea o le a faʻaopoopoina ai foliga fou ma faʻamautu faʻamau. A maeʻa lenei mea, o le a faʻataʻitaʻiina lomiga beta mo le tolu masina, lea o le a faʻasaina ai le faʻaopoopoina o foliga fou ma o le a gauai uma i le faʻaleleia o bug. O masina mulimuli e lua a'o le'i tatalaina, o le a iai le lala i le tulaga o le sui tauva, lea o le a faia ai le faʻamautuina mulimuli.

Faatasi ai ma le faaopoopo mea fou i le Python 3.9:

  • I lomifefiloi ua fa'amatalaina e fa'aaoga ai le vasega o lo'o fausia i totonu, faaali mai lagolago mo fa'alapotopotoga tu'ufa'atasi "|" ma le "|=" fa'afouga, lea e fa'aopoopo i le {**d1, **d2} ma le dict.update metotia na mua'i fuafuaina mo le tu'ufa'atasia o lomifefiloi.

    >>> 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'}

  • O le aoina mai totonu o ituaiga e aofia ai le lisi, dict, ma le tuple, lea e mafai ona faʻaaogaina e avea ma ituaiga faʻavae e aunoa ma le faʻaulufale mai mai le faʻapipiʻi module. O na. nai lo le taina.List, typing.Dict and typing.Tuple e mafai nei ona e faama'oti
    naʻo le lisi, faʻamatalaga ma tuple:

    def greet_all(igoa: lisi [str]) -> Leai:
    mo igoa i igoa:
    print("Talofa", igoa)

  • Ua saunia meafaigaluega fetu'una'i mo fa'amatalaga galuega ma fesuiaiga. Mo le fa'apipi'iina o fa'amatalaga, ua fa'aopoopoina se ituaiga Fa'amatalaga fou i le fa'aoga o le ta'itusi, fa'alautele ituaiga o lo'o iai fa'atasi ai ma metadata fa'aopoopo e mafai ona fa'aoga mo su'esu'ega fa'amau po'o su'esu'ega taimi-taimi. Ina ia maua metadata mai le code, o le include_extras parameter ua faaopoopo i le typing.get_type_hints() method.

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

  • Tonu i lalo mana'oga o le kalama mo tagata teuteu - so'o se fa'amatalaga e talafeagai mo le fa'aoga i le pe a ma le taimi e mafai ona fa'aoga poloka e fai ma teuteuga. O le suiga na matua faʻaleleia atili ai le faitau o le code PyQt5 ma faʻafaigofie le tausiga o lenei module:

    Sa:
    button_0 = buttons[0] @button_0.clicked.connect

    Ua mafai nei ona e tusi:
    @buttons[0].clicked.connect

  • I le faletusi masani faʻaopoopo module sonefofo, lea e aofia ai faʻamatalaga mai le IANA time zone database.

    >>> mai le zoneinfo import ZoneInfo
    >>> mai datetime import datetime, timedelta
    >>> # Taimi o le tau mafanafana
    >>> dt = datetime(2020, 10, 31, 12, tzinfo=ZoneInfo("America/Los_Angeles"))
    >>> lolomi(dt)
    2020-10-31 12:00:00-07:00

    >>> dt.tzname()
    'PDT'

    >>> # Taimi masani
    >>> dt += timedelta(aso=7)
    >>> lolomi(dt)
    2020-11-07 12:00:00-08:00

    >>> lolomi(dt.tzname())
    PST

  • Faʻaopoopo graphlib module, lea faatinoina lagolago mo le faavasegaina o kalafi topological.
  • Fautuaina auala fou mo le aveeseina o prefix ma laina fa'ai'uga - str.removeprefix(prefix) ma str.removesuffix(suffix). Metotia ua faaopoopo i str, bytes, bytearray ma collections.UserString mea faitino.

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

  • A'afia tala fou tautaulaga (Parsing Expression Grammar), lea na suia ai le parser LL(1). O le faʻaogaina o le parser fou na mafai ai ona faʻaumatia nisi o "hacks" na faʻaaogaina e pasi ai faʻatapulaʻaina i le LL(1), ma faʻaitiitia ai le tau o tagata faigaluega mo le tausia o le parser. I le tulaga o le faʻatinoga, o le parser fou o loʻo i luga o le tulaga tutusa e pei o le muamua, ae sili atu i luma i le tulaga o le fetuutuunai, lea e mafai ai ona e lagona atili le saoloto pe a mamanuina ni gagana fou. O le code parser tuai o lo'o taofia mo le taimi nei ma e mafai ona toe fa'afo'i mai i le fa'aaogaina o le fu'a "-X oldparser" po'o le fesuiaiga o le si'osi'omaga "PYTHONOLDPARSER=1", ae o le a aveesea i le fa'asa'olotoga 3.10.
  • Tuuina atu le gafatia mo C faʻaopoopoga auala e maua ai le tulaga o modules o loʻo faʻamatalaina ai i latou e faʻaaoga ai le faʻailoga tuusaʻo nai lo le suʻeina o le setete o le module e faʻaaoga ai le galuega PyState_FindModule. O le suiga e mafai ai e oe ona faʻateleina le faʻatinoga o modules C e ala i le faʻaitiitia poʻo le faʻaumatia atoa o le maualuga o le siakiina o le tulaga o le module. Ina ia faʻafesoʻotaʻi se module ma se vasega, o le C-function PyType_FromModuleAndSpec() ua faʻatulagaina, e maua ai le module ma lona setete, o le C-function PyType_GetModule() ma PyType_GetModuleState() ua faʻatulagaina, ma ia tuʻuina atu se auala e mafai ai ona maua le avanoa i le vasega. lea e faauigaina ai, o le C-function PyCMethod ma le METH_METHOD fuʻa o loʻo faʻatulagaina. .
  • Tu'u lapisi auina atu mai le lokaina o fa'aputuga o lo'o iai mea fa'aola o lo'o tumau ona mafai ona maua i fafo pe a uma le fa'ai'uga.
  • Fa'aopoopo auala os.pidfd_open, lea e faʻatagaina ai le Linux kernel subsystem "pidfd" e faʻaaogaina e faʻatautaia ai le PID toe faʻaaogaina tulaga (pidfd e fesoʻotaʻi ma se faiga faʻapitoa ma e le suia, aʻo se PID e mafai ona fesoʻotaʻi ma se isi gaioiga pe a maeʻa le faagasologa o loʻo iai nei e faʻamuta le PID. ).
  • Lagolago mo le Unicode specification ua toe faafou i le version 13.0.0.
  • Ave'esea le manatua lelei pe a toe faʻafouina le faʻaliliuga Python i le faiga lava e tasi.
  • O le faʻatinoga o le fausiaina o ituaiga ituaiga, tuple, seti, frozenset, lisi ma le dict ua sili ona lelei. faatino e ala i le faʻaogaina o le Vectorcall shortcut protocol mo le vave maua o mea e tusia i le gagana C.
  • Modules _abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, operator, punaoa, taimi ma _weakref e utaina mai. amataina i ni laasaga.
  • O le potutusi masani modules audioop, ast, grp, _hashlib, pwd, _posixsubprocess, random, select, struct, termios ma zlib ua liua e faʻaaoga tapulaʻa. mautu ABI, lea e foia ai le faʻafitauli o le faʻaogaina o faʻapotopotoga o faʻaopoopoga faʻaopoopoga mo ituaiga eseese o Python (pe a faʻafouina le faʻasologa, e le manaʻomia le toe fausia o faʻaopoopoga faʻaopoopoga, ma modules tuufaatasia mo 3.9 o le a mafai ona galue i le lala 3.10).
  • O le asyncio module ua faʻaumatia le lagolago mo le reuse_address parameter ona o faʻafitauli saogalemu (faʻaaogaina SO_REUSEADDR mo UDP i Linux faʻatagaina faiga eseese e faʻapipiʻi faʻalogo faʻalogo i se UDP uafu).
  • Ua faʻaopoopoina ni faʻataʻitaʻiga fou, mo se faʻataʻitaʻiga, faʻaleleia atili le faʻatinoina o faʻailoga i le tele o filo, faʻateleina le saoasaoa o le subprocess module i le FreeBSD environment, ma le vave tuʻuina atu o suiga le tumau (tuuina atu se fesuiaiga i le faaupuga "mo y i [expr ]” ua avea nei ma faatinoga e pei o le faaupuga “y = expr” "). I se tulaga lautele, o le tele o suʻega faaali fa'aitiitia fa'atinoga pe a fa'atusatusa i le lala 3.8 (fa'atopetope e na'o le su'ega write_local ma le write_deque):

    Python version 3.4 3.5 3.6 3.7 3.8 3.9
    ————— — — — — ——

    Su'esu'e ma uiga avanoa faitau:
    read_local 7.1 7.1 5.4 5.1 3.9 4.0
    faitau_nonlocal 7.1 8.1 5.8 5.4 4.4 4.8
    faitau_lalolagi 15.5 19.0 14.3 13.6 7.6 7.7
    faitau_fausia 21.1 21.6 18.5 19.0 7.5 7.7
    faitau_classvar_mai_vasega 25.6 26.5 20.7 19.5 18.4 18.6
    faitau_classvar_from_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
    faitau_instancevar_slots 27.8 31.3 20.8 20.8 20.2 24.5
    faitau_namedtuple 73.8 57.5 45.0 46.8 18.4 23.2
    read_boundmethod 37.6 37.9 29.6 26.9 27.7 45.9

    Su'esu'e ma uiga e mafai ona tusia ai:
    write_local 8.7 9.3 5.5 5.3 4.3 4.2
    write_nonlocal 10.5 11.1 5.6 5.5 4.7 4.9
    write_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
    write_instancevar 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.7

    Fa'asologa o fa'amatalaga avanoa faitau:
    faitau_lisi 24.2 24.5 20.8 20.8 19.0 21.1
    faitau_deque 24.7 25.5 20.2 20.6 19.8 21.6
    faitau_fa'atonu 24.3 25.7 22.3 23.0 21.0 22.5
    faitau_strdict 22.6 24.3 19.5 21.2 18.9 21.6

    Fa'asologa o fa'amaumauga tusitusi avanoa:
    tusi_lisi 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
    tusi_tusi 31.4 33.3 29.3 29.2 24.7 27.8
    write_strdict 28.4 29.9 27.5 25.2 23.1 29.8

    Fa'atonuga (po'o le fa'asologa):
    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

    Taimi ta'amilosaga:
    matasele_luga 0.5 0.6 0.4 0.3 0.3 0.3

  • Ave'esea tele Python 2.7 galuega ma metotia na faʻaumatia muamua ma mafua ai le DeprecationWarning i le faʻasalalauga talu ai, e aofia ai le unescape() method in html.parser.HTMLParser,
    tostring() ma fromstring() in array.array, isAlive() in threading.Thread, getchildren() ma getiterator() in ElementTree, sys.getcheckinterval(), sys.setcheckinterval(), asyncio.Task.current_task(), asyncio.Task.all_tasks(), base64.encodestring() ma base64.decodestring().

puna: opennet.ru

Faaopoopo i ai se faamatalaga