ืžืขืœื“ื•ื ื’ ืคื•ืŸ ื“ื™ Python 3.9 ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฉืคึผืจืึทืš

ื ืึธืš ืึท ื™ืึธืจ ืคื•ืŸ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ื“ืขืจืœืื ื’ื˜ ื‘ืึทื˜ื™ื™ึทื˜ื™ืง ืžืขืœื“ื•ื ื’ ืคื•ืŸ ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฉืคึผืจืึทืš ืคึผื™ื˜ื”ืึธืŸ ืงืกื ื•ืžืงืก. Python 3.9 ืื™ื– ื’ืขื•ื•ืขืŸ ื“ืขืจ ืขืจืฉื˜ืขืจ ืžืขืœื“ื•ื ื’ ื ืึธืš ื™ื‘ืขืจื’ืึทื ื’ ืคึผืจื•ื™ืขืงื˜ ืื•ื™ืฃ ื ื™ื™ึท ืฆื™ืงืœ ืฆื•ื’ืจื™ื™ื˜ื•ื ื’ ืื•ืŸ ืฉื˜ื™ืฆืŸ ืคื•ืŸ ืจื™ืœื™ืกื™ื–. ื ื™ื• ื”ื•ื™ืคึผื˜ ืจื™ืœื™ืกื™ื– ื•ื•ืขื˜ ื–ื™ื™ืŸ ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ ืึทืžืึธืœ ืึท ื™ืึธืจ, ืื•ืŸ ืงืขืจืขืงื˜ื™ื•ื• ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื•ื ื’ืขืŸ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืจืขืœืขืึทืกืขื“ ื™ืขื“ืขืจ ืฆื•ื•ื™ื™ ื—ื“ืฉื™ื. ื™ืขื“ืขืจ ื‘ืึทื˜ื™ื™ื˜ื™ืง ืฆื•ื•ื™ื™ึทื’ ื•ื•ืขื˜ ื–ื™ื™ืŸ ื’ืขืฉื˜ื™ืฆื˜ ืคึฟืึทืจ ืื™ื™ืŸ ืื•ืŸ ืึท ื”ืึทืœื‘ ื™ืึธืจ, ื ืึธืš ื•ื•ืึธืก ื ืึธืš ื“ืจื™ื™ ืื•ืŸ ืึท ื”ืึทืœื‘ ื™ืึธืจ ื•ื•ืขื˜ ื–ื™ื™ืŸ ื“ืขื•ื•ืขืœืึธืคึผืขื“ ืคึฟืึทืจ ืขืก ืฆื• ืคืึทืจืจื™ื›ื˜ืŸ ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™ื–.

ื“ื™ ืึทืจื‘ืขื˜ ืื•ื™ืฃ ืึท ื ื™ื™ึท ืฆื•ื•ื™ื™ึทื’ ื”ื™ื™ื‘ื˜ ื–ื™ืš ืื™ืฆื˜ ืึธืŸ ืคื™ื ืฃ ื—ื“ืฉื™ื ืื™ื™ื“ืขืจ ื“ื™ ืžืขืœื“ื•ื ื’ ืคื•ืŸ ื“ื™ ื•ื•ื™ื™ึทื˜ืขืจ ืฆื•ื•ื™ื™ึทื’, ื“.ื”. ืงืึธื•ื™ื ืกื™ื™ื“ื™ื ื’ ืžื™ื˜ ื“ื™ ืžืขืœื“ื•ื ื’ ืคื•ืŸ Python 3.9 ืื ื’ืขื”ื•ื™ื‘ืŸ ืึทืœืฃ ื˜ืขืกื˜ื™ื ื’ ืคื•ืŸ ื“ื™ Python 3.10 ืฆื•ื•ื™ื™ึทื’. ื“ื™ Python 3.10 ืฆื•ื•ื™ื™ึทื’ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืื™ืŸ ืึทืœืฃ ืžืขืœื“ื•ื ื’ ืคึฟืึทืจ ื–ื™ื‘ืŸ ื—ื“ืฉื™ื, ื‘ืขืฉืึทืก ื•ื•ืึธืก ื ื™ื™ึท ืคึฟืขื™ึดืงื™ื™ื˜ืŸ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืžื•ืกื™ืฃ ืื•ืŸ ื‘ืึทื’ื– ืคืึทืจืคืขืกื˜ื™ืงื˜. ื ืึธืš ื“ืขื, ื‘ื™ืชื ื•ื•ืขืจืกื™ืขืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ื˜ืขืกื˜ืขื“ ืคึฟืึทืจ ื“ืจื™ื™ ื—ื“ืฉื™ื, ื‘ืขืฉืึทืก ื•ื•ืึธืก ืึทื“ื™ื ื’ ื ื™ื™ึท ืคึฟืขื™ึดืงื™ื™ื˜ืŸ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืคึผืจืึธื•ื›ื™ื‘ืึทื˜ืึทื“ ืื•ืŸ ืึทืœืข ื•ืคืžืขืจืงื–ืึทืžืงื™ื™ื˜ ื•ื•ืขื˜ ื–ื™ื™ืŸ ื‘ืึทืฆืึธืœื˜ ืฆื• ืคื™ืงืกื™ืจ ื‘ืึทื’ื–. ื“ื™ ืœืขืฆื˜ืข ืฆื•ื•ื™ื™ ืžืื ืื˜ืŸ ืคืืจืŸ ื‘ืืคืจื™ื™ืื•ื ื’ ื•ื•ืขื˜ ื“ืขืจ ืฆื•ื•ื™ื™ื’ ื–ื™ื™ืŸ ืื™ืŸ ื“ืขืจ ื‘ืืคืจื™ื™ืื•ื ื’ ืงืื ื“ื™ื“ืื˜, ืื™ืŸ ื•ื•ืขืœื›ืŸ ืขืก ื•ื•ืขื˜ ื“ื•ืจื›ื’ืขืคื™ืจื˜ ื•ื•ืขืจืŸ ืขื ื“ื’ื™ืœื˜ื™ืงืข ืกื˜ืื‘ื™ืœื™ื–ืืฆื™ืข.

ืฆื•ื•ื™ืฉืŸ ืฆื•ื’ืขื’ืขื‘ืŸ ื™ื ืึธื•ื•ื•ื™ื™ืฉืึทื ื– ืื™ืŸ Python 3.9:

  • ืื™ืŸ ื“ื™ืงืฉืึทื ืขืจื™ื– ื“ื™ืคื™ื™ื ื“ ืžื™ื˜ ื“ื™ ื’ืขื‘ื•ื™ื˜-ืื™ืŸ ื“ื™ืงื˜ ืงืœืึทืก, ืืจื•ื™ืก ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืฆื•ื ื•ื™ืคื’ื™ืกืŸ ืึธืคึผืขืจื™ื™ื˜ืขืจื– "|" ืื•ืŸ "|=" ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื•ื ื’ืขืŸ, ื•ื•ืึธืก ื“ืขืจื’ืึทื ื’ ื“ื™ {**d1, **d2} ืื•ืŸ dict.update ืžืขื˜ื”ืึธื“ืก ื‘ื™ื– ืึทื”ืขืจ ืคืืจื’ืขืœื™ื™ื’ื˜ ืคึฟืึทืจ ืฆื•ื ื•ื™ืคื’ื™ืกืŸ ื“ื™ืงืฉืึทื ืขืจื™ื–.

    >>> ืจืขื ื˜ื’ืขื  = {"key1": "value1 from x", "key2": "value2 from x"}
    >>> ื™ = {"key2": "value2 from y", "key3": "value3 from y"}

    >>> ืจืขื ื˜ื’ืขื  | ื™
    {'key1': 'value1 from x', 'key2': 'value2 from y', 'key3': 'value3 from y'}

    >>> ื™ | ืจืขื ื˜ื’ืขื 
    {'key2': 'value2 from x', 'key3': 'value3 from y', 'key1': 'value1 from x'}

  • ื“ื™ ื’ืขื‘ื•ื™ื˜-ืื™ืŸ ื–ืึทืžืœื•ื ื’ ืคื•ืŸ ื˜ื™ื™ืคึผืก ื›ื•ืœืœ ืจืฉื™ืžื”, ื“ื™ืงื˜ ืื•ืŸ ื˜ื•ืคึผืœืข, ื•ื•ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ื•ื•ื™ ื‘ืึทื–ืข ื˜ื™ื™ืคึผืก ืึธืŸ ื™ืžืคึผืึธืจื˜ื™ื ื’ ืคื•ืŸ ื“ื™ ื˜ื™ื™ืคึผื™ื ื’ ืžืึธื“ื•ืœืข. ื™ืขื ืข. ืึทื ืฉื˜ืึธื˜ ืคื•ืŸ ื˜ื™ื™ืคึผื™ื ื’.ืœื™ืกื˜, ื˜ื™ื™ืคึผื™ื ื’.ื“ื™ืงื˜ ืื•ืŸ ื˜ื™ื™ืคึผื™ื ื’.ื˜ื•ืคึผืœืข ืื™ืจ ืงืขื ืขืŸ ืื™ืฆื˜ ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ
    ื ืึธืจ ืจืฉื™ืžื”, ื“ื™ืงื˜ ืื•ืŸ ื˜ื•ืคึผืœืข:

    ื“ืขืฃ greet_all (ื ืขืžืขืŸ: ืจืฉื™ืžื” [ืกื˜ืจ]) -> ืงื™ื™ื ืขืจ:
    ืคึฟืึทืจ ื ืึธืžืขืŸ ืื™ืŸ ื ืขืžืขืŸ:
    print ("ื”ืขืœื", ื ืึธืžืขืŸ)

  • ื–ืขื ืขืŸ ืฆื•ื’ืขืฉื˜ืขืœื˜ ืคืœืขืงืกืึทื‘ืึทืœ ืžื›ืฉื™ืจื™ื ืคึฟืึทืจ ืึทื ืึทื˜ื™ื™ื˜ื™ื ื’ ืคืึทื ื’ืงืฉืึทื ื– ืื•ืŸ ื•ื•ืขืจื™ืึทื‘ืึทืœื–. ืคึฟืึทืจ ืึทื˜ืึทื˜ืฉื™ื ื’ ืึทื ืึทื˜ื™ื™ืฉืึทื ื–, ืึท ื ื™ื™ึทืข ืึทื ืึทื˜ื™ื™ื˜ื™ื“ ื˜ื™ืคึผ ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ ืฆื• ื“ื™ ื˜ื™ื™ืคึผื™ื ื’ ืžืึธื“ื•ืœืข, ื™ืงืกื˜ืขื ื“ื™ื ื’ ื™ื’ื–ื™ืกื˜ื™ื ื’ ื˜ื™ื™ืคึผืก ืžื™ื˜ ื ืึธืš ืžืขื˜ืึทื“ืึทื˜ืึท ื•ื•ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ืคึฟืึทืจ ืกื˜ืึทื˜ื™ืง ืึทื ืึทืœื™ืกื™ืก ืึธื“ืขืจ ืคึฟืึทืจ ืœื•ื™ืคืŸ-ืฆื™ื™ื˜ ืึธืคึผื˜ื™ืžื™ื–ืึทื˜ื™ืึธื ืก. ืฆื• ืึทืงืกืขืก ืžืขื˜ืึทื“ืึทื˜ืึท ืคึฟื•ืŸ ืงืึธื“, ื“ื™ include_extras ืคึผืึทืจืึทืžืขื˜ืขืจ ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ ืฆื• ื“ื™ typing.get_type_hints () ืื•ืคึฟืŸ.

    charType = Annotated[int, ctype(ยซcharยป)] UnsignedShort = Annotated[int, struct2.ctype(โ€˜Hโ€™)]

  • ื˜ืึธื•ื ื“ ืึทืจืึธืคึผ ื’ืจืึทืžืึทื˜ื™ืง ืจืขืงื•ื•ื™ืจืขืžืขื ืฅ ืคึฟืึทืจ ื“ืขืงืขืจื™ื™ื˜ืขืจื– - ืงื™ื™ืŸ ืื•ื™ืกื“ืจื•ืง ืคึผืึทืกื™ืง ืคึฟืึทืจ ื ื•ืฆืŸ ืื™ืŸ ืื•ื™ื‘ ืื•ืŸ ื‘ืฉืขืช ื‘ืœืึทืงืก ืงืขื ืขืŸ ืื™ืฆื˜ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ื•ื•ื™ ืึท ื“ืขืงืขืจื™ื™ื˜ืขืจ. ื“ืขืจ ืขื ื“ืขืจื•ื ื’ ื‘ืื˜ื™ื™ื˜ื™ืง ื™ืžืคึผืจื•ื•ื•ื“ ื“ื™ ืจื™ื“ืึทื‘ื™ืœื™ื˜ื™ ืคื•ืŸ ื“ื™ PyQt5 ืงืึธื“ ืื•ืŸ ืกื™ืžืคึผืœืึทืคื™ื™ื“ ื“ื™ ื•ื™ืฉืึทืœื˜ ืคื•ืŸ ื“ืขื ืžืึธื“ื•ืœืข:

    ืื™ื– ื’ืขื•ื•ืขืŸ:
    button_0 = buttons[0] @button_0.clicked.connect

    ืื™ืฆื˜ ืื™ืจ ืงืขื ืขืŸ ืฉืจื™ื™ึทื‘ืŸ:
    @buttons[0].clicked.connect

  • ืฆื• ื“ืขืจ ื ืึธืจืžืึทืœ ื‘ื™ื‘ืœื™ืึธื˜ืขืง ืฆื•ื’ืขื’ืขื‘ืŸ ืžืึธื“ื•ืœืข zoneinfo, ื•ื•ืึธืก ื›ื•ืœืœ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ IANA ืฆื™ื™ื˜ ื–ืึธื ืข ื“ืึทื˜ืึทื‘ื™ื™ืก.

    >>> ืคึฟื•ืŸ zoneinfo ืึทืจื™ื™ึทื ืคื™ืจ ZoneInfo
    >>> ืคึฟื•ืŸ ื“ืึทื˜ืขื˜ื™ืžืข ืึทืจื™ื™ึทื ืคื™ืจ ื“ืึทื˜ืขื˜ื™ืžืข, ื˜ื™ืžืขื“ืœื˜ืึท
    >>> # ื–ื•ืžืขืจ ืฆื™ื™ื˜
    >>> dt = ื“ืึทื˜ืขื˜ื™ื™ื(2020, 10, 31, 12, tzinfo=ZoneInfo ("ืึทืžืขืจื™ืงืข/ืœืืก_ืื ื“ื–ืฉืขืœืขืก"))
    >>> ื“ืจื•ืงืŸ (ื“ื˜)
    2020-10-31 12:00:00-07:00

    >>> dt.tzname()
    'PDT'

    >>> # ื ืึธืจืžืึทืœ ืฆื™ื™ื˜
    >>> ื“ื˜ += ืฆื™ื™ื˜ ื“ืขืœื˜ืึท (ื˜ืขื’ = 7)
    >>> ื“ืจื•ืงืŸ (ื“ื˜)
    2020-11-07 12:00:00-08:00

    >>> ื“ืจื•ืง (ื“ื˜.ื˜ื–ื ืึทืžืข ())
    ืคึผืกื˜

  • ืฆื•ื’ืขื’ืขื‘ืŸ graphlib ืžืึธื“ื•ืœืข, ืื™ืŸ ื•ื•ืึธืก ื™ืžืคึผืœืึทืžืขื ืึทื“ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื˜ืึทืคึผืึทืœืึทื“ื–ืฉื™ืงืึทืœ ืกืึธืจื˜ื™ื ื’ ืคื•ืŸ ื’ืจืึทืคืก.
  • ืคืืจื’ืขืœื™ื™ื’ื˜ ื ื™ื™ึทืข ืžืขื˜ื”ืึธื“ืก ืคึฟืึทืจ ืจื™ืžื•ื•ื•ื™ื ื’ ืคึผืจืขืคื™ืงืก ืื•ืŸ ืฉื•ืจื” ืขื ื“ื™ื ื’ื– - str.removeprefix(ืคึผืจืขืคื™ืงืก) ืื•ืŸ str.removesuffix(ืกืึทืคื™ืงืก). ืžืขื˜ื”ืึธื“ืก ื”ืึธื‘ืŸ ืฉื•ื™ืŸ ืžื•ืกื™ืฃ ืฆื• ืกื˜ืจ, ื‘ื™ื˜ืขืก, ื‘ื™ื™ื˜ืขืึทืจืจื™ื™ึท ืื•ืŸ ื–ืึทืžืœื•ื ื’ืขืŸ.ื•ืกืขืจืกื˜ืจื™ื ื’ ืึทื‘ื“ื–ืฉืขืงืฅ.

    >>> s = "ืคืึธืึธื‘ืึทืจ"
    >>> s.removeprefix ("ืคืึธืึธ")
    'ื‘ืจ'

  • ืืจื™ื™ื ื’ืขืžื™ืฉื˜ ื ื™ื™ึท ืคึผืึทืจืกืขืจ ืงืจื•ืง (ืคึผืึทืจืกื™ื ื’ ืขืงืกืคึผืจืขืกืกื™ืึธืŸ ื’ืจืึทืžืึทื˜ื™ืง), ื•ื•ืึธืก ืจื™ืคึผืœื™ื™ืกื˜ ื“ื™ ืคึผืึทืจืกืขืจ LL(1). ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ื“ื™ ื ื™ื™ึทืข ืคึผืึทืจืกืขืจ ื’ืขืžืื›ื˜ ืขืก ืžืขื’ืœืขืš ืฆื• ื‘ืึทืงื•ืžืขืŸ ื‘ืึทืคืจื™ื™ึทืขืŸ ืคื•ืŸ ืขื˜ืœืขื›ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื“ื™ "ื›ืึทืงืก" ื’ืขื ื™ืฆื˜ ืฆื• ื‘ื™ื™ืคึผืึทืก ื“ื™ ืจื™ืกื˜ืจื™ืงืฉืึทื ื– ืื™ืŸ LL (1), ืื•ืŸ ื‘ืื˜ื™ื™ื˜ื™ืง ืจื™ื“ื•ืกื˜ ื“ื™ ืึทืจื‘ืขื˜ ืงืึธืก ืคึฟืึทืจ ืžื™ื™ื ื˜ื™ื™ื ื™ื ื’ ื“ื™ ืคึผืึทืจืกืขืจ. ืื™ืŸ ื˜ืขืจืžื™ื ืขืŸ ืคื•ืŸ ืคืึธืจืฉื˜ืขืœื•ื ื’, ื“ื™ ื ื™ื™ึทืข ืคึผืึทืจืกืขืจ ืื™ื– ื‘ืขืขืจืขืš ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืžื“ืจื’ื” ื•ื•ื™ ื“ื™ ืคืจื™ืขืจื“ื™ืงืข, ืึธื‘ืขืจ ืื™ื– ื‘ืื˜ื™ื™ื˜ื™ืง ืคืึธืจื•ื™ืก ืื™ืŸ ื˜ืขืจืžื™ื ืขืŸ ืคื•ืŸ ื‘ื™ื™ื’ื™ืงื™ื™ึทื˜, ื•ื•ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืคื™ืœืŸ ืžืขืจ ืคืจื™ื™ ื•ื•ืขืŸ ื“ื™ื–ื™ื™ื ื™ื ื’ ื ื™ื™ึทืข ืฉืคึผืจืึทืš ืคึฟืขื™ึดืงื™ื™ื˜ืŸ. ื“ืขืจ ืึทืœื˜ ืคึผืึทืจืกืขืจ ืงืึธื“ ืื™ื– ืจื™ื˜ื™ื™ื ื“ ืคึฟืึทืจ ืื™ืฆื˜ ืื•ืŸ ืงืขื ืขืŸ ื–ื™ื™ืŸ ืื•ืžื’ืขืงืขืจื˜ ืžื™ื˜ ื“ื™ "-X oldparser" ืคืึธืŸ ืึธื“ืขืจ ื“ื™ "PYTHONOLDPARSER = 1" ืกื•ื•ื™ื•ื•ืข ื‘ื™ื™ึทื˜ืขื•ื•ื“ื™ืง, ืึธื‘ืขืจ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืึทื•ื•ืขืงื’ืขื ื•ืžืขืŸ ืื™ืŸ ืžืขืœื“ื•ื ื’ 3.10.
  • ืฆื•ื’ืขืฉื˜ืขืœื˜ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืคึฟืึทืจ C ืคืึทืจืœืขื ื’ืขืจื•ื ื’ ืžืขื˜ื”ืึธื“ืก ืฆื• ืึทืงืกืขืก ื“ื™ ืฉื˜ืึทื˜ ืคื•ืŸ ื“ื™ ืžืึทื“ื–ืฉื•ืœื– ืื™ืŸ ื•ื•ืึธืก ื–ื™ื™ ื–ืขื ืขืŸ ื“ื™ืคื™ื™ื ื“ ืžื™ื˜ ื“ื™ืจืขืงื˜ ื˜ื™ื™ึทื˜ืœ ื“ืขืจืคืขืจืึทื ืก ืึทื ืฉื˜ืึธื˜ ืคื•ืŸ ื–ื•ื›ืŸ ืคึฟืึทืจ ื“ื™ ืžืึธื“ื•ืœืข ืฉื˜ืึทื˜ ืžื™ื˜ ื“ื™ PyState_FindModule ืคื•ื ืงืฆื™ืข. ื“ืขืจ ืขื ื“ืขืจื•ื ื’ ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืคืึทืจื’ืจืขืกืขืจืŸ ื“ื™ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืคื•ืŸ C ืžืึทื“ื–ืฉื•ืœื– ื“ื•ืจืš ืจื™ื“ื•ืกื™ื ื’ ืึธื“ืขืจ ื’ืึธืจ ื™ืœื™ืžืึทื ื™ื™ื˜ื™ื ื’ ื“ื™ ืึธื•ื•ื•ืขืจื›ืขื“ ืคื•ืŸ ืงืึธื ื˜ืจืึธืœื™ืจื•ื ื’ ื“ื™ ืžืึธื“ื•ืœืข ืฉื˜ืึทื˜. ืฆื• ืคึฟืึทืจื‘ื•ื ื“ืŸ ืึท ืžืึธื“ื•ืœืข ืžื™ื˜ ืึท ืงืœืึทืก, ื“ื™ C-ืคื•ื ืงืฆื™ืข PyType_FromModuleAndSpec() ืื™ื– ืคืืจื’ืขืœื™ื™ื’ื˜, ืฆื• ืงืจื™ื’ืŸ ื“ืขื ืžืึธื“ื•ืœืข ืื•ืŸ ื–ื™ื™ืŸ ืฉื˜ืึทื˜, ื“ื™ C-ืคื•ื ืงืฆื™ืข PyType_GetModule() ืื•ืŸ PyType_GetModuleState() ื–ืขื ืขืŸ ืคืืจื’ืขืœื™ื™ื’ื˜, ืื•ืŸ ืฆื• ืฆื•ืฉื˜ืขืœืŸ ืึท ืžืขื˜ืึธื“ ืžื™ื˜ ืึทืงืกืขืก ืฆื• ื“ื™ ืงืœืึทืก. ืื™ืŸ ื•ื•ืึธืก ืขืก ืื™ื– ื“ื™ืคื™ื™ื ื“, ื“ื™ C-ืคื•ื ืงืฆื™ืข PyCMethod ืื•ืŸ ื“ื™ METH_METHOD ืคืึธืŸ ื–ืขื ืขืŸ ืคืืจื’ืขืœื™ื™ื’ื˜. .
  • ืžื™ืกื˜ ืงืึทืœืขืงื˜ืขืจ ืื™ื‘ืขืจื’ืขื’ืขื‘ืŸ ืคื•ืŸ ืœืึทืงื™ื ื’ ื–ืึทืžืœื•ื ื’ืขืŸ ืžื™ื˜ ืจืขืึทื ื™ืžื™ื™ื˜ื™ื“ ืึทื‘ื“ื–ืฉืขืงืฅ ื•ื•ืึธืก ื‘ืœื™ื™ื‘ืŸ ื•ื™ืกื•ื•ื™ื™ื ื™ืง ืฆื•ื˜ืจื™ื˜ืœืขืš ื ืึธืš ื“ื™ ืคื™ื™ื ืึทืœื™ื™ื–ืขืจ ืœื•ื™ืคื˜.
  • ืฆื•ื’ืขื’ืขื‘ืŸ ืื•ืคึฟืŸ os.pidfd_open, ื•ื•ืึธืก ืึทืœืึทื•ื– ื“ื™ ืœื™ื ื•ืงืก ืงืขืจืŸ ืกืึทื‘ืกื™ืกื˜ืึทื "ืคึผื™ื“ืคื“" ืฆื• ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ืฆื• ืฉืขืคึผืŸ ื“ื™ PID ืจื™ื™ื•ืก ืกื™ื˜ื•ืึทืฆื™ืข (ืคึผื™ื“ืคื“ ืื™ื– ืคืืจื‘ื•ื ื“ืŸ ืžื™ื˜ ืึท ืกืคึผืขืฆื™ืคื™ืฉ ืคึผืจืึธืฆืขืก ืื•ืŸ ื˜ื•ื˜ ื ื™ืฉื˜ ื˜ื•ื™ืฉืŸ, ื‘ืฉืขืช ืึท PID ืงืขื ืขืŸ ื–ื™ื™ืŸ ืคืืจื‘ื•ื ื“ืŸ ืžื™ื˜ ืืŸ ืื ื“ืขืจ ืคึผืจืึธืฆืขืก ื ืึธืš ื“ืขื ืงืจืึทื ื˜ ืคึผืจืึธืฆืขืก ืคึฟืึทืจื‘ื•ื ื“ืŸ ืžื™ื˜ ื“ืขื PID ื˜ืขืจืžืึทื ื™ื™ืฅ ).
  • ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ ืื•ื ื™ืงืึธื“ ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ืื™ื– ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜ ืฆื• ื•ื•ืขืจืกื™ืข 13.0.0.
  • ื™ืœื™ืžืึทื ื™ื™ื˜ืึทื“ ื–ื›ึผืจื•ืŸ ืจื™ื ืขืŸ ื•ื•ืขืŸ ืจื™ื™ื ื™ื˜ื™ืึทืœื™ื–ื™ื ื’ ื“ื™ ืคึผื™ื˜ื”ืึธืŸ ื™ื‘ืขืจื–ืขืฆืขืจ ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืคึผืจืึธืฆืขืก.
  • ื“ื™ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืคื•ืŸ ื“ื™ ื’ืขื‘ื•ื™ื˜-ืื™ืŸ ื˜ื™ื™ืคึผืก ืงื™ื™ื˜, ื˜ื•ืคึผืœืข, ืฉื˜ืขืœืŸ, ืคืจืึธื–ืขื ืกืขื˜, ืจืฉื™ืžื” ืื•ืŸ ื“ื™ืงื˜ ืื™ื– ืึธืคึผื˜ื™ืžื™ื–ืขื“. ื™ืžืคึผืœืึทืžืขื ืึทื“ ื“ื•ืจืš ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ื“ื™ Vectorcall ื“ื•ืจื›ื•ื•ืขื’ ืคึผืจืึธื˜ืึธืงืึธืœ ืคึฟืึทืจ ืคืึทืกื˜ืขืจ ืึทืงืกืขืก ืฆื• ืึทื‘ื“ื–ืฉืขืงืฅ ื’ืขืฉืจื™ื‘ืŸ ืื™ืŸ ื“ื™ C ืฉืคึผืจืึทืš.
  • ืžืึธื“ื•ืœืขืก _abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, ืึธืคึผืขืจืึทื˜ืึธืจ, ืžื™ื˜ืœ, ืฆื™ื™ื˜ ืื•ืŸ _weakref ื–ืขื ืขืŸ ืœืึธื•ื“ื™ื“ ืคึฟื•ืŸ ื™ื ื™ื˜ื™ืึทืœื™ื–ืึทื˜ื™ืึธืŸ ืื™ืŸ ืขื˜ืœืขื›ืข ืกื˜ืึทื’ืขืก.
  • ื“ื™ ื ืึธืจืžืึทืœ ื‘ื™ื‘ืœื™ืึธื˜ืขืง ืžืึทื“ื–ืฉื•ืœื– ืึทื•ื“ื™ืึธืึธืคึผ, ast, grp, _hashlib, pwd, _posixsubprocess, ื˜ืจืึทืค, ืื•ื™ืกืงืœื™ื™ึทื‘ืŸ, ืกื˜ืจื•ืงื˜ื•ืจ, ื˜ืขืจืžื™ืึธืก ืื•ืŸ ื–ืœื™ื‘ ื–ืขื ืขืŸ ืงืึธื ื•ื•ืขืจื˜ืขื“ ืฆื• ื ื•ืฆืŸ ืœื™ืžื™ื˜ืขื“ ืกื˜ืึทื‘ื™ืœ ืึทื‘ื™, ื•ื•ืึธืก ืกืึทืœื•ื•ื– ื“ื™ ืคึผืจืึธื‘ืœืขื ืคื•ืŸ ื“ื™ ืึธืคึผืขืจืึทื‘ื™ืœื™ื˜ื™ ืคื•ืŸ ืึทืกืขืžื‘ืœื™ื– ืคื•ืŸ ืคืึทืจืœืขื ื’ืขืจื•ื ื’ ืžืึทื“ื–ืฉื•ืœื– ืคึฟืึทืจ ืคืึทืจืฉื™ื“ืขื ืข ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ ืคึผื™ื˜ื”ืึธืŸ (ื•ื•ืขืŸ ืึทืคึผื“ื™ื™ื˜ื™ื ื’ ื“ื™ ื•ื•ืขืจืกื™ืข, ืขืก ืื™ื– ื ื™ื˜ ื“ืึทืจืคึฟืŸ ืฆื• ืจื™ื‘ื™ืœื“ ื’ืขืฉืคึผืจื™ื™ื˜ ืžืึทื“ื–ืฉื•ืœื–, ืื•ืŸ ืžืึทื“ื–ืฉื•ืœื– ืฆื•ื ื•ื™ืคื’ืขืฉื˜ืขืœื˜ ืคึฟืึทืจ 3.9 ืงืขื ืขืŸ ืึทืจื‘ืขื˜ืŸ ืื™ืŸ ื“ื™ 3.10 ืฆื•ื•ื™ื™ึทื’).
  • ื“ื™ ืึทืกื™ื ืกื™ืึธ ืžืึธื“ื•ืœืข ื”ืื˜ ื“ื™ืคึผืจื™ืฉื™ื™ื™ื˜ื™ื“ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ ืจืขื•ืกืข_ืึทื“ืจืขืกืก ืคึผืึทืจืึทืžืขื˜ืขืจ ืจืขื›ื˜ ืฆื• ืคึผืึธื˜ืขื ืฆื™ืขืœ ื–ื™ื›ืขืจื”ื™ื™ื˜ ื™ืฉื•ื– (ื ื™ืฆืŸ SO_REUSEADDR ืคึฟืึทืจ UDP ืื•ื™ืฃ ืœื™ื ื•ืงืก ืึทืœืึทื•ื– ืคืึทืจืฉื™ื“ืขื ืข ืคึผืจืึทืกืขืกืึทื– ืฆื• ืฆื•ื˜ืฉืขืคึผืขืŸ ืฆื•ื’ืขื”ืขืจื˜ ืกืึทืงืึทืฅ ืฆื• ืึท UDP ืคึผืึธืจื˜).
  • ื ืฒึทืข ืึธืคึผื˜ื™ืžื™ื–ืึทื˜ื™ืึธื ืก ื”ืึธื‘ืŸ ืฉื•ื™ืŸ ืฆื•ื’ืขื’ืขื‘ืŸ, ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ื™ืžืคึผืจื•ื•ื•ื“ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืคื•ืŸ ืกื™ื’ื ืึทืœ ื”ืึทื ื“ืœืขืจืก ืื™ืŸ ืžื•ืœื˜ื™-ื˜ืจืขื“ื™ื“ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–, ื’ืขื•ื•ืืงืกืŸ ื’ื™ื›ืงื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ืกื•ื‘ืคึผืจืึธืกืขืก ืžืึธื“ื•ืœืข ืื™ืŸ ื“ื™ FreeBSD ืกื•ื•ื™ื•ื•ืข, ืื•ืŸ ืคืึทืกื˜ืขืจ ืึทืกื™ื™ื ืžืึทื ื˜ ืคื•ืŸ ืฆื™ื™ึทื˜ื•ื•ื™ื™ึทืœื™ืง ื•ื•ืขืจื™ืึทื‘ืึทืœื– (ืึทืกื™ื™ื ื™ื ื’ ืึท ื‘ื™ื™ึทื˜ืขื•ื•ื“ื™ืง ืื™ืŸ ื“ืขืจ ืื•ื™ืกื“ืจื•ืง "ืคึฟืึทืจ ื™ ืื™ืŸ [ืขืงืกืคึผืจ. ]" ืื™ื– ืื™ืฆื˜ ื•ื•ื™ ืคึผืขืจืคืึธืจืžืึทื ื˜ ื•ื•ื™ ื“ืขืจ ืื•ื™ืกื“ืจื•ืง "ื™ = ืขืงืกืคึผืจ" "). ืื™ืŸ ืึทืœื’ืขืžื™ื™ืŸ, ืจื•ื‘ึฟ ื˜ืขืกืฅ ื•ื•ื™ื™ึทื–ืŸ ืคืึทืจืงืœืขื ืขืจืŸ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืงืึทืžืคึผืขืจื“ ืžื™ื˜ ืฆื•ื•ื™ื™ึทื’ 3.8 (ืกืคึผืขื“ื•ืคึผ ืื™ื– ื‘ืืžืขืจืงื˜ ื‘ืœื•ื™ื– ืื™ืŸ ื“ื™ ืฉืจื™ื™ึทื‘ืŸ_ืœืึธืงืึทืœ ืื•ืŸ ืฉืจื™ื™ึทื‘ืŸ_ื“ืขืงื•ื•ืข ื˜ืขืกืฅ):

    ืคึผื™ื˜ื”ืึธืŸ ื•ื•ืขืจืกื™ืข 3.4 3.5 3.6 3.7 3.8 3.9
    โ€”โ€”โ€”โ€”โ€” โ€” โ€” โ€” โ€” โ€” โ€”

    ื•ื•ืึทืจื™ืึทื‘ืœืข ืื•ืŸ ืึทื˜ืจื™ื‘ื™ื•ื˜ ืœื™ื™ืขื ืขืŸ ืึทืงืกืขืก:
    ืœื™ื™ืขื ืขืŸ_ืœืึธืงืึทืœ 7.1 7.1 5.4 5.1 3.9 4.0
    ืœื™ื™ืขื ืขืŸ_ื ืึธื ืœืึธืงืึทืœ 7.1 8.1 5.8 5.4 4.4 4.8
    ืœื™ื™ืขื ืขืŸ_ื’ืœืื‘ืืœ 15.5 19.0 14.3 13.6 7.6 7.7
    ืœื™ื™ืขื ืขืŸ_ื‘ื™ืœื˜ื™ืŸ 21.1 21.6 18.5 19.0 7.5 7.7
    ืœื™ื™ืขื ืขืŸ_ืงืœืึทืกื•ื•ืึทืจ_ืคึฟื•ืŸ_ืงืœืึทืก 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
    read_instancevar 32.4 33.1 28.0 26.3 25.4 27.7
    ืœื™ื™ืขื ืขืŸ_ื™ื ืกื˜ืึทื ืกืขื•ื•ืึทืจ_ืกืœืึธืฅ 27.8 31.3 20.8 20.8 20.2 24.5
    ืœื™ื™ืขื ืขืŸ_ื ืึทืžืขื“ื˜ื•ืคึผืœืข 73.8 57.5 45.0 46.8 18.4 23.2
    ืœื™ื™ืขื ืขืŸ_ื‘ืึทื•ื ื“ ืžืขื˜ืึทื“ 37.6 37.9 29.6 26.9 27.7 45.9

    ื•ื•ืึทืจื™ืึทื‘ืœืข ืื•ืŸ ืึทื˜ืจื™ื‘ื™ื•ื˜ ืฉืจื™ื™ึทื‘ืŸ ืึทืงืกืขืก:
    ืฉืจื™ื™ื‘_ืœืึธืงืึทืœ 8.7 9.3 5.5 5.3 4.3 4.2
    ืฉืจื™ื™ึทื‘ืŸ_ื ืึธื ืœืึธืงืึทืœ 10.5 11.1 5.6 5.5 4.7 4.9
    ืฉืจื™ื™ื‘_ื’ืœืื‘ืืœ 19.7 21.2 18.0 18.0 15.8 17.2
    ืฉืจื™ื™ื‘_ืงืœืึทืกื•ื•ืึทืจ 92.9 96.0 104.6 102.1 39.2 43.2
    ืฉืจื™ื™ื‘_ื™ื ืกื˜ืึทื ืกื•ื•ืึทืจ 44.6 45.8 40.0 38.9 35.5 40.7
    ืฉืจื™ื™ื‘_ื™ื ืกื˜ืึทื ืกืขื•ื•ืึทืจ_ืกืœืึธืฅ 35.6 36.1 27.3 26.6 25.7 27.7

    ื“ืึทื˜ืึท ืกื˜ืจื•ืงื˜ื•ืจ ืœื™ื™ืขื ืขืŸ ืึทืงืกืขืก:
    ืœื™ื™ืขื ืขืŸ_ืœื™ืกื˜ 24.2 24.5 20.8 20.8 19.0 21.1
    ืœื™ื™ืขื ืขืŸ_ื“ืขืงื•ื•ืข 24.7 25.5 20.2 20.6 19.8 21.6
    ืœื™ื™ืขื ืขืŸ_ื“ื™ืงื˜ 24.3 25.7 22.3 23.0 21.0 22.5
    ืœื™ื™ืขื ืขืŸ_ืกื˜ืจื“ื™ืงื˜ 22.6 24.3 19.5 21.2 18.9 21.6

    ื“ืึทื˜ืึท ืกื˜ืจื•ืงื˜ื•ืจ ืฉืจื™ื™ึทื‘ืŸ ืึทืงืกืขืก:
    ืฉืจื™ื™ื‘_ืœื™ืกื˜ 27.1 28.5 22.5 21.6 20.0 21.6
    ืฉืจื™ื™ื‘_ื“ืขืงื•ื•ืข 28.7 30.1 22.7 21.8 23.5 23.2
    ืฉืจื™ื™ื‘_ื“ื™ืงื˜ 31.4 33.3 29.3 29.2 24.7 27.8
    ืฉืจื™ื™ื‘_ืกื˜ืจื“ื™ืงื˜ 28.4 29.9 27.5 25.2 23.1 29.8

    ืึธื ืœื™ื™ื’ืŸ (ืึธื“ืขืจ ืจื™ื™) ืึทืคึผืขืจื™ื™ืฉืึทื ื–:
    ืจืฉื™ืžื”_ืึทืคึผืขื ื“_ืคึผืึธืคึผ 93.4 112.7 75.4 74.2 50.8 53.9
    ื“ืขืงื•ื•ืข_ืึทืคึผืขื ื“_ืคึผืึธืคึผ 43.5 57.0 49.4 49.2 42.5 45.5
    ื“ืขืงื•ื•ืข_ืึทืคึผืขื ื“_ืคึผืึธืคึผืœืขืคื˜ 43.7 57.3 49.7 49.7 42.8 45.5

    ืฆื™ื™ื˜ ืฆื™ื™ื˜:
    ืฉืœื™ื™ืฃ_ืึธื•ื•ืขืจื”ืขืึทื“ 0.5 0.6 0.4 0.3 0.3 0.3

  • ืึทื•ื•ืขืงื’ืขื ื•ืžืขืŸ ืคื™ืœืข Python 2.7 ืคืึทื ื’ืงืฉืึทื ื– ืื•ืŸ ืžืขื˜ื”ืึธื“ืก ื•ื•ืึธืก ื–ืขื ืขืŸ ืคืจื™ืขืจ ื“ื™ืคึผืจื™ืฉื™ื™ื™ื˜ื™ื“ ืื•ืŸ ืจื™ื–ืึทืœื˜ื™ื“ ืื™ืŸ ืึท ื“ืขืคึผืจืขืงืึทื˜ื™ืึธืŸ ื•ื•ืึธืจื ื™ื ื’ ืื™ืŸ ื“ื™ ืคืจื™ืขืจื“ื™ืงืข ืžืขืœื“ื•ื ื’, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ื“ื™ ื•ื ืขืกืงืึทืคึผืข () ืื•ืคึฟืŸ ืื™ืŸ html.parser.HTMLParser,
    tostring() ืื•ืŸ fromstring() ืื™ืŸ array.array, isAlive() ืื™ืŸ ื˜ืจืขื“ื™ื ื’.ืคืึธื“ืขื, getchildren() ืื•ืŸ ื’ืขื˜ื™ื˜ืขืจืึทื˜ืึธืจ() ืื™ืŸ ElementTree, sys.getcheckinterval(), sys.setcheckinterval(), asyncio.task.current_task(), asyncio.task.all_tasks(), base64.encodestring() ืื•ืŸ base64.decodestring().

ืžืงื•ืจ: opennet.ru

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’