ืฉื—ืจื•ืจ ืฉืคืช ื”ืชื›ื ื•ืช Python 3.9

ืœืื—ืจ ืฉื ื” ืฉืœ ืคื™ืชื•ื— ื”ืฆื™ื’ ืฉื—ืจื•ืจ ืžืฉืžืขื•ืชื™ ืฉืœ ืฉืคืช ืชื›ื ื•ืช ืคื™ื™ืชื•ืŸ 3.9. Python 3.9 ื”ื™ื” ื”ืžื”ื“ื•ืจื” ื”ืจืืฉื•ื ื” ืฉืื—ืจื™ ะฟะตั€ะตั…ะพะดะฐ ืคืจื•ื™ืงื˜ ื‘ ืžื—ื–ื•ืจ ื—ื“ืฉ ื”ื›ื ื” ื•ืชืžื™ื›ื” ื‘ืžื”ื“ื•ืจื•ืช. ืžื”ื“ื•ืจื•ืช ืžืจื›ื–ื™ื•ืช ื—ื“ืฉื•ืช ื™ื•ืคืงื• ื›ืขืช ืื—ืช ืœืฉื ื”, ื•ืขื“ื›ื•ื ื™ื ืžืชืงื™ื ื™ื ื™ืฉื•ื—ืจืจื• ืžื“ื™ ื—ื•ื“ืฉื™ื™ื. ื›ืœ ืกื ื™ืฃ ืžืฉืžืขื•ืชื™ ื™ืงื‘ืœ ืชืžื™ื›ื” ืœืžืฉืš ืฉื ื” ื•ื—ืฆื™ ื•ืœืื—ืจ ืžื›ืŸ ื™ืคื•ืชื—ื• ืœื• ืขื•ื“ ืฉืœื•ืฉ ืฉื ื™ื ื•ื—ืฆื™ ืœืชื™ืงื•ืŸ ื ืงื•ื“ื•ืช ืชื•ืจืคื”.

ื”ืขื‘ื•ื“ื” ืขืœ ืกื ื™ืฃ ื—ื“ืฉ ืžืชื—ื™ืœื” ื›ืขืช ื—ืžื™ืฉื” ื—ื•ื“ืฉื™ื ืœืคื ื™ ื™ืฆื™ืืช ื”ืกื ื™ืฃ ื”ื‘ื, ื›ืœื•ืžืจ. ื‘ืžืงื‘ื™ืœ ืœืฉื—ืจื•ืจ ืฉืœ Python 3.9 ื”ืชื—ื™ืœ ื‘ื“ื™ืงืช ืืœืคื ืฉืœ ืขื ืฃ Python 3.10. ื”ืกื ื™ืฃ ืฉืœ Python 3.10 ื™ื”ื™ื” ื‘ืžื”ื“ื•ืจืช ืืœืคื ืœืžืฉืš ืฉื‘ืขื” ื—ื•ื“ืฉื™ื, ื‘ืžื”ืœื›ื ื™ืชื•ื•ืกืคื• ืชื›ื•ื ื•ืช ื—ื“ืฉื•ืช ื•ื™ืชื•ืงื ื• ื‘ืื’ื™ื. ืœืื—ืจ ืžื›ืŸ, ื™ื™ื‘ื—ื ื• ื’ืจืกืื•ืช ื‘ื˜ื ืœืžืฉืš ืฉืœื•ืฉื” ื—ื•ื“ืฉื™ื, ื‘ืžื”ืœื›ื ืชื™ืืกืจ ื”ื•ืกืคืช ืคื™ืฆ'ืจื™ื ื—ื“ืฉื™ื ื•ื›ืœ ืชืฉื•ืžืช ื”ืœื‘ ืชื•ืงื“ืฉ ืœืชื™ืงื•ืŸ ื‘ืื’ื™ื. ื”ื—ื•ื“ืฉื™ื™ื ื”ืื—ืจื•ื ื™ื ืœืคื ื™ ื”ืฉื—ืจื•ืจ, ื”ืกื ื™ืฃ ื™ื”ื™ื” ื‘ืฉืœื‘ ืžื•ืขืžื“ ืœืฉื—ืจื•ืจ, ื‘ื• ื™ื‘ื•ืฆืข ื™ื™ืฆื•ื‘ ืกื•ืคื™.

ื‘ื™ืŸ ื”ื•ืกื™ืฃ ื—ื™ื“ื•ืฉื™ื ื‘-Python 3.9:

  • ื‘ืžื™ืœื•ื ื™ื ื”ืžื•ื’ื“ืจื™ื ื‘ืืžืฆืขื•ืช ืžื—ืœืงืช dict ื”ืžื•ื‘ื ื™ืช, ื”ื•ืคื™ืข ืชืžื™ื›ื” ื‘ืžืคืขื™ืœื™ ืžื™ื–ื•ื’ "|" ื•-"|=" ืขื“ื›ื•ื ื™ื, ื”ืžืฉืœื™ืžื™ื ืืช ื”ืฉื™ื˜ื•ืช {**d1, **d2} ื•-dict.update ืฉื”ื•ืฆืขื• ื‘ืขื‘ืจ ืœืžื™ื–ื•ื’ ืžื™ืœื•ื ื™ื.

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

    >>> ื™ | ืื™ืงืก
    {'key2': 'value2 from x', 'key3': 'value3 from y', 'key1': 'value1 from x'}

  • ืื•ืกืฃ ื”ืกื•ื’ื™ื ื”ืžื•ื‘ื ื” ื›ื•ืœืœ list, dict ื•-tuple, ืฉื™ื›ื•ืœื™ื ืœืฉืžืฉ ื›ืกื•ื’ื™ ื‘ืกื™ืก ืžื‘ืœื™ ืœื™ื™ื‘ื ืžืžื•ื“ื•ืœ ื”ื”ืงืœื“ื”. ื”ึธื”ึตืŸ. ื‘ืžืงื•ื ื”ืงืœื“ื”. ืจืฉื™ืžื”, ื”ืงืœื“ื”. ื“ื™ืงื˜ ื•ื”ืงืœื“ื”. Tuple ืืชื” ื™ื›ื•ืœ ื›ืขืช ืœืฆื™ื™ืŸ
    ืจืง ืจืฉื•ื, ื”ื›ืชื‘ ื•ื˜ื•ืคืœ:

    def greet_all(ืฉืžื•ืช: ืจืฉื™ืžื”[str]) -> ืื™ืŸ:
    ืœืฉื ื‘ืฉืžื•ืช:
    print("ืฉืœื•ื", ืฉื)

  • ืžืกื•ืคืงื™ื ื›ืœื™ื ื’ืžื™ืฉื™ื ืœื‘ื™ืื•ืจ ืคื•ื ืงืฆื™ื•ืช ื•ืžืฉืชื ื™ื. ืœืฆื™ืจื•ืฃ ื”ืขืจื•ืช, ื ื•ืกืฃ ืกื•ื’ ืžื•ืขืจ ื—ื“ืฉ ืœืžื•ื“ื•ืœ ื”ื”ืงืœื“ื”, ื”ืžืจื—ื™ื‘ ืืช ื”ืกื•ื’ื™ื ื”ืงื™ื™ืžื™ื ืขื ืžื˜ื ื ืชื•ื ื™ื ื ื•ืกืคื™ื ืฉื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื”ื ืœื ื™ืชื•ื— ืกื˜ื˜ื™ ืื• ืœืื•ืคื˜ื™ืžื™ื–ืฆื™ื•ืช ืฉืœ ื–ืžืŸ ืจื™ืฆื”. ื›ื“ื™ ืœื’ืฉืช ืœืžื˜ื ื ืชื•ื ื™ื ืžืงื•ื“, ื”ืคืจืžื˜ืจ include_extras ื ื•ืกืฃ ืœืฉื™ื˜ืช typing.get_type_hints()โ€Ž.

    charType = ืžื•ืขืจ[int, ctype("char")] UnsignedShort = ืžื•ืขืจ[int, struct2.ctype('H')]

  • ื”ื•ืจื™ื“ ืขืฆืžื” ื“ืจื™ืฉื•ืช ื“ืงื“ื•ืงื™ื•ืช ืœืžืขืฆื‘ื™ื - ื›ืœ ื‘ื™ื˜ื•ื™ ื”ืžืชืื™ื ืœืฉื™ืžื•ืฉ ื‘ื‘ืœื•ืงื™ื ืฉืœ ืื ื•ื‘ืขืช ื™ื›ื•ืœ ื›ืขืช ืœืฉืžืฉ ื›ื“ืงื•ืจื˜ื•ืจ. ื”ืฉื™ื ื•ื™ ืฉื™ืคืจ ืžืฉืžืขื•ืชื™ืช ืืช ื”ืงืจื™ืื” ืฉืœ ืงื•ื“ PyQt5 ื•ืคืฉื˜ ืืช ื”ืชื—ื–ื•ืงื” ืฉืœ ืžื•ื“ื•ืœ ื–ื”:

    ื–ื” ื”ื™ื”:
    button_0 = buttons[0] @button_0.clicked.connect

    ืขื›ืฉื™ื• ืืชื” ื™ื›ื•ืœ ืœื›ืชื•ื‘:
    @buttons[0].clicked.connect

  • ืœืกืคืจื™ื™ื” ื”ืจื’ื™ืœื” ื”ื•ืกื™ืฃ ืžื•ื“ื•ืœ ืื–ื•ืจ ืžื™ื“ืข, ื”ื›ื•ืœืœ ืžื™ื“ืข ืžืžืกื“ ื”ื ืชื•ื ื™ื ืฉืœ ืื–ื•ืจื™ ื”ื–ืžืŸ ืฉืœ IANA.

    >>> ืž-zoneinfo ื™ื™ื‘ื•ื โ€‹โ€‹ZoneInfo
    >>> ืžืชืืจื™ืš ืชืืจื™ืš ื™ื™ื‘ื•ื โ€‹โ€‹ืชืืจื™ืš ืฉืขื”, ื–ืžืŸ ื“ืœืชื
    >>> # ืฉืขื•ืŸ ืงื™ืฅ
    >>> dt = datetime(2020, 10, 31, 12, tzinfo=ZoneInfo("America/Los_Angeles"))
    >>> print(dt)
    2020-10-31 12:00:00-07:00

    >>> dt.tzname()
    'PDT'

    >>> # ื–ืžืŸ ืจื’ื™ืœ
    >>> dt += timedelta(ื™ืžื™ื=7)
    >>> print(dt)
    2020-11-07 12:00:00-08:00

    >>> print(dt.tzname())
    PST

  • ื ื•ืกืฃ ืžื•ื“ื•ืœ graphlib, ืฉื‘ื• ืžื•ื˜ืžืข ืชืžื™ื›ื” ื‘ืžื™ื•ืŸ ื˜ื•ืคื•ืœื•ื’ื™ ืฉืœ ื’ืจืคื™ื.
  • ืžื•ึผืฆึธืข ืฉื™ื˜ื•ืช ื—ื“ืฉื•ืช ืœื”ืกืจืช ืงื™ื“ื•ืžื•ืช ื•ืกื™ื•ืžืช ืฉื•ืจื” - str.removeprefix(prefix) ื•-str.removesuffix(suffix). ื ื•ืกืคื• ืฉื™ื˜ื•ืช ืœ-str, bytes, bytearray ื•-collects.UserString ืื•ื‘ื™ื™ืงื˜ื™ื.

    >>> s = "FoBar"
    >>> s.removeprefix("Foo")
    'ื‘ึผึทืจ'

  • ืžึฐืขื•ึผืจึธื‘ ืžื ืชื— ื—ื“ืฉ PEG (Parsing Expression Grammar), ืฉื”ื—ืœื™ืฃ ืืช ื”ืžื ืชื— 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, ื”ืžืืคืฉืจ ืœื”ืฉืชืžืฉ ื‘ืชืช ืžืขืจื›ืช ืœื™ื‘ืช ืœื™ื ื•ืงืก "pidfd" ืœื˜ื™ืคื•ืœ ื‘ืžืฆื‘ ื”ืฉื™ืžื•ืฉ ื”ื—ื•ื–ืจ ื‘-PID (pidfd ืžืฉื•ื™ืš ืœืชื”ืœื™ืš ืกืคืฆื™ืคื™ ื•ืื™ื ื• ืžืฉืชื ื”, ื‘ืขื•ื“ ืฉ-PID ื™ื›ื•ืœ ืœื”ื™ื•ืช ืžืฉื•ื™ืš ืœืชื”ืœื™ืš ืื—ืจ ืœืื—ืจ ืฉื”ืชื”ืœื™ืš ื”ื ื•ื›ื—ื™ ื”ืžืฉื•ื™ืš ืœืื•ืชื• PID ืžืกืชื™ื™ื ).
  • ื”ืชืžื™ื›ื” ื‘ืžืคืจื˜ Unicode ืขื•ื“ื›ื ื” ืœื’ืจืกื” 13.0.0.
  • ืžื—ื•ืกืœ ื“ืœื™ืคืช ื–ื™ื›ืจื•ืŸ ื‘ืขืช ืืชื—ื•ืœ ืžื—ื“ืฉ ืฉืœ ืžืชื•ืจื’ืžืŸ Python ื‘ืื•ืชื• ืชื”ืœื™ืš.
  • ื”ื‘ื™ืฆื•ืขื™ื ืฉืœ ื˜ื•ื•ื— ื”ืกื•ื’ื™ื ื”ืžื•ื‘ื ื™ื, tuple, set, frozenset, list ื•-dict ืขื‘ืจื• ืื•ืคื˜ื™ืžื™ื–ืฆื™ื”. ืžื•ื˜ืžืข ื‘ืืžืฆืขื•ืช ืฉื™ืžื•ืฉ ื‘ืคืจื•ื˜ื•ืงื•ืœ ื”ืงื™ืฆื•ืจ ืฉืœ Vectorcall ืœื’ื™ืฉื” ืžื”ื™ืจื” ื™ื•ืชืจ ืœืื•ื‘ื™ื™ืงื˜ื™ื ื”ื›ืชื•ื‘ื™ื ื‘ืฉืคืช C.
  • ืžื•ื“ื•ืœื™ื _abc, audioop, _bz2, _codec, _contextvars, _crypt, _functools, _json, _locale, ืžืคืขื™ืœ, ืžืฉืื‘, ื–ืžืŸ ื•-_weakref ื ื˜ืขื ื™ื ืž- ืืชื—ื•ืœ ื‘ืžืกืคืจ ืฉืœื‘ื™ื.
  • ืžื•ื“ื•ืœื™ ื”ืกืคืจื™ื™ื” ื”ืกื˜ื ื“ืจื˜ื™ื™ื audioop, ast, grp, _hashlib, pwd, _posixsubprocess, random, select, struct, termios ื•-zlib ื”ื•ืžืจื• ืœืฉื™ืžื•ืฉ ืžื•ื’ื‘ืœ ABI ื™ืฆื™ื‘, ืืฉืจ ืคื•ืชืจ ืืช ื‘ืขื™ื™ืช ื”ืชืคืขื•ืœ ืฉืœ ืžื›ืœื•ืœื™ื ืฉืœ ืžื•ื“ื•ืœื™ ื”ืจื—ื‘ื” ืขื‘ื•ืจ ื’ืจืกืื•ืช ืฉื•ื ื•ืช ืฉืœ Python (ื‘ืขืช ืขื“ื›ื•ืŸ ื”ื’ืจืกื”, ืื™ืŸ ืฆื•ืจืš ืœื‘ื ื•ืช ืžื—ื“ืฉ ืžื•ื“ื•ืœื™ ื”ืจื—ื‘ื”, ื•ืžื•ื“ื•ืœื™ื ืฉืงื•ืžืคืœื• ืœ-3.9 ื™ื•ื›ืœื• ืœืขื‘ื•ื“ ื‘ืขื ืฃ 3.10).
  • ืžื•ื“ื•ืœ asyncio ื”ื•ืฆื™ื ืžืฉื™ืžื•ืฉ ืืช ื”ืชืžื™ื›ื” ื‘ืคืจืžื˜ืจ reuse_address ืขืงื‘ ื‘ืขื™ื•ืช ืื‘ื˜ื—ื” ืคื•ื˜ื ืฆื™ืืœื™ื•ืช (ืฉื™ืžื•ืฉ ื‘-SO_REUSEADDR ืขื‘ื•ืจ UDP ื‘ืœื™ื ื•ืงืก ืžืืคืฉืจ ืœืชื”ืœื™ื›ื™ื ืฉื•ื ื™ื ืœื—ื‘ืจ ืฉืงืขื™ ื”ืื–ื ื” ืœื™ืฆื™ืืช UDP).
  • ื ื•ืกืคื• ืื•ืคื˜ื™ืžื™ื–ืฆื™ื•ืช ื—ื“ืฉื•ืช, ืœืžืฉืœ, ื‘ื™ืฆื•ืขื™ื ืžืฉื•ืคืจื™ื ืฉืœ ืžื˜ืคืœื™ ืื•ืชื•ืช ื‘ื™ื™ืฉื•ืžื™ื ืžืจื•ื‘ื™ ื”ืœื™ื›ื™ ื”ืœื™ื›ื™, ืžื”ื™ืจื•ืช ืžื•ื’ื‘ืจืช ืฉืœ ืžื•ื“ื•ืœ ืชืช-ื”ืชื”ืœื™ื›ื™ื ื‘ืกื‘ื™ื‘ืช FreeBSD ื•ื”ืงืฆืื” ืžื”ื™ืจื” ื™ื•ืชืจ ืฉืœ ืžืฉืชื ื™ื ื–ืžื ื™ื™ื (ื”ืงืฆืืช ืžืฉืชื ื” ื‘ื‘ื™ื˜ื•ื™ "ืขื‘ื•ืจ y ื‘-[expr) ]โ€ ื”ื•ื ื›ืขืช ื‘ื™ืฆื•ืขื™ ื›ืžื• ื”ื‘ื™ื˜ื•ื™ "y = expr" "). ื‘ืื•ืคืŸ ื›ืœืœื™, ืจื•ื‘ ื”ื‘ื“ื™ืงื•ืช ืœื”ืจืื•ืช ื™ืจื™ื“ื” ื‘ื‘ื™ืฆื•ืขื™ื ื‘ื”ืฉื•ื•ืื” ืœืขื ืฃ 3.8 (ื”ื’ื‘ืจืช ื”ืžื”ื™ืจื•ืช ื ืจืื™ืช ืจืง ื‘ืžื‘ื—ื ื™ write_local ื•-write_deque):

    ืคื™ื™ืชื•ืŸ ื’ืจืกื” 3.4 3.5 3.6 3.7 3.8 3.9
    โ€”โ€”โ€”โ€”โ€” โ€” โ€” โ€” โ€” โ€” โ€”

    ื’ื™ืฉืช ืงืจื™ืื” ืฉืœ ืžืฉืชื ื” ื•ืชื›ื•ื ื”:
    read_local 7.1 7.1 5.4 5.1 3.9 4.0
    read_nonlocal 7.1 8.1 5.8 5.4 4.4 4.8
    read_global 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
    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
    read_instancevar 32.4 33.1 28.0 26.3 25.4 27.7
    read_instancevar_slots 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
    read_boundmethod 37.6 37.9 29.6 26.9 27.7 45.9

    ื’ื™ืฉืช ื›ืชื™ื‘ื” ืœืžืฉืชื ื” ื•ืชื›ื•ื ื”:
    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

    ื’ื™ืฉืช ืงืจื™ืื” ืฉืœ ืžื‘ื ื” ื ืชื•ื ื™ื:
    read_list 24.2 24.5 20.8 20.8 19.0 21.1
    read_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
    read_strdict 22.6 24.3 19.5 21.2 18.9 21.6

    ื’ื™ืฉืช ื›ืชื™ื‘ื” ืœืžื‘ื ื” ื ืชื•ื ื™ื:
    Write_list 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
    write_dict 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

    ืคืขื•ืœื•ืช ืžื—ืกื ื™ืช (ืื• ืชื•ืจ):
    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

    ืœื•ืœืืช ืชื–ืžื•ืŸ:
    loop_overhead 0.5 0.6 0.4 0.3 0.3 0.3

  • ื”ื•ืกืจ ืคื•ื ืงืฆื™ื•ืช ื•ืฉื™ื˜ื•ืช ืจื‘ื•ืช ืฉืœ Python 2.7 ืฉื”ื•ืฆืื• ืžืฉื™ืžื•ืฉ ื‘ืขื‘ืจ ื•ื”ื‘ื™ืื• ืœืื–ื”ืจืช DeprecationWarning ื‘ืžื”ื“ื•ืจื” ื”ืงื•ื“ืžืช, ื›ื•ืœืœ ืฉื™ื˜ืช unescape() ื‘-html.parser.HTMLParser,
    tostring() ื•-fromstring() ื‘-array.array, isAlive() ื‘-threading.Thread, getchildren() ื•-getiterator() ื‘-ElementTree, sys.getcheckinterval(), sys.setcheckinterval(), asyncio.Task.current_task(), asyncio.Task.all_tasks(), base64.encodestring() ื•-base64.decodestring().

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

ื”ื•ืกืคืช ืชื’ื•ื‘ื”