ΠΠΎΡΠ»Π΅ Π³ΠΎΠ΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
Π Π°Π±ΠΎΡΠ° Π½Π°Π΄ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΠΊΠΎΠΉ ΡΠ΅ΠΏΠ΅ΡΡ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Π·Π° ΠΏΡΡΡ ΠΌΠ΅ΡΡΡΠ΅Π² Π΄ΠΎ ΡΠ΅Π»ΠΈΠ·Π° ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ, Ρ.Π΅. ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Ρ Π²ΡΠΏΡΡΠΊΠΎΠΌ 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’}>>> y | x
{‘key2’: ‘value2 from x’, ‘key3’: ‘value3 from y’, ‘key1’: ‘value1 from x’} - ΠΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΡΠΈΠΏΠΎΠ² Π²ΠΊΠ»ΡΡΠ΅Π½Ρ list, dict ΠΈ tuple, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΡΠΈΠΏΡ Π±Π΅Π· ΠΈΠΌΠΏΠΎΡΡΠ° ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρ typing. Π’.Π΅. Π²ΠΌΠ΅ΡΡΠΎ typing.List, typing.Dict ΠΈ typing.Tuple ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ
ΠΏΡΠΎΡΡΠΎ list, dict ΠΈ tuple:def greet_all(names: list[str]) -> None:
for name in names:
print(«Hello», name) -
ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Ρ Π³ΠΈΠ±ΠΊΠΈΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ Π°Π½Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ . ΠΠ»Ρ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΉ Π² ΠΌΠΎΠ΄ΡΠ»Ρ typing Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²ΡΠΉ ΡΠΈΠΏ Annotated, ΡΠ°ΡΡΠΈΡΡΡΡΠΈΠΉ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠΈΠΏΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ Π°Π½Π°Π»ΠΈΠ·Π΅ ΠΈΠ»ΠΈ Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΉ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΠ»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠΌ ΠΈΠ· ΠΊΠΎΠ΄Π° Π² ΠΌΠ΅ΡΠΎΠ΄ typing.get_type_hints() Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ include_extras.charType = Annotated[int, ctype(«char»)] UnsignedShort = Annotated[int, struct2.ctype(‘H’)]
-
Π‘ΠΌΡΠ³ΡΠ΅Π½Ρ Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ°ΠΌ — Π»ΡΠ±ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅Π΅ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Π±Π»ΠΎΠΊΠ°Ρ if ΠΈ while, ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΎ ΠΊΠ°ΠΊ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π·Π°ΠΌΠ΅ΡΠ½ΠΎ ΡΠ»ΡΡΡΠΈΡΡ ΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΡ ΠΊΠΎΠ΄Π° PyQt5 ΠΈ ΡΠΏΡΠΎΡΡΠΈΡΡ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ:ΠΡΠ»ΠΎ:
button_0 = buttons[0] @button_0.clicked.connectΠ’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ:
@buttons[0].clicked.connect - Π ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ
Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΌΠΎΠ΄ΡΠ»Ρzoneinfo , Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈΠ· Π±Π°Π·Ρ ΡΠ°ΡΠΎΠ²ΡΡ ΠΏΠΎΡΡΠΎΠ² IANA.>>> from zoneinfo import ZoneInfo
>>> from datetime import datetime, timedelta
>>> # ΠΠ΅ΡΠ½Π΅Π΅ Π²ΡΠ΅ΠΌΡ
>>> 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(days=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 ΠΈ collections.UserString.>>> s = «FooBar»
>>> s.removeprefix(«Foo»)
‘Bar’ -
ΠΠ°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½ Π½ΠΎΠ²ΡΠΉ ΠΏΠ°ΡΡΠ΅ΡPEG (Parsing Expression Grammar), ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΡΡΠ» Π½Π° ΡΠΌΠ΅Π½Ρ ΠΏΠ°ΡΡΠ΅ΡΡLL(1) . ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠ°ΡΡΠ΅ΡΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ «Ρ Π°ΠΊΠΎΠ²», ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π΄Π»Ρ ΠΎΠ±Ρ ΠΎΠ΄Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ Π² LL(1), ΠΈ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠ½ΠΈΠ·ΠΈΠ»ΠΎ ΡΡΡΠ΄ΠΎΠ·Π°ΡΡΠ°ΡΡ Π½Π° ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΠ°ΡΡΠ΅ΡΠ°. ΠΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π½ΠΎΠ²ΡΠΉ ΠΏΠ°ΡΡΠ΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ Ρ ΠΏΡΠΎΡΠ»ΡΠΌ, Π½ΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠΏΠ΅ΡΠ΅ΠΆΠ°Π΅Ρ Π΅Π³ΠΎ Π² ΠΏΠ»Π°Π½Π΅ Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ ΡΡΠ²ΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠ΅Π±Ρ ΠΏΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π½ΠΎΠ²ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΡΠ·ΡΠΊΠ°. ΠΠΎΠ΄ ΡΡΠ°ΡΠΎΠ³ΠΎ ΠΏΠ°ΡΡΠ΅ΡΠ° ΠΏΠΎΠΊΠ° ΡΠΎΡ ΡΠ°Π½ΡΠ½ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΡΠ½ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠ»Π°Π³Π° «-X oldparser» ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ «PYTHONOLDPARSER=1», Π½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π°Π»ΡΠ½ Π² Π²ΡΠΏΡΡΠΊΠ΅ 3.10. -
ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π‘ΠΈ-ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ ΠΊ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ½ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ, Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡΡΠΌΠΎΠ³ΠΎ ΡΠ°Π·ΡΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Π²ΠΌΠ΅ΡΡΠΎ ΠΏΠΎΠΈΡΠΊΠ° ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ PyState_FindModule. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ²ΡΡΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π½Π° Π‘ΠΈ Π·Π° ΡΡΡΡ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΡ ΡΠ°ΡΡ ΠΎΠ΄ΠΎΠ² Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ. ΠΠ»Ρ Π°ΡΡΠΎΡΠΈΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ Ρ ΠΊΠ»Π°ΡΡΠΎΠΌ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Π‘ΠΈ-ΡΡΠ½ΠΊΡΠΈΡ PyType_FromModuleAndSpec(), Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈ Π΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π‘ΠΈ-ΡΡΠ½ΠΊΡΠΈΠΈ PyType_GetModule() ΠΈ PyType_GetModuleState(), Π° Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΊΠ»Π°ΡΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½, Π‘ΠΈ-ΡΡΠ½ΠΊΡΠΈΡ PyCMethod ΠΈ ΡΠ»Π°Π³ METH_METHOD. - Π‘Π±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ°
ΠΈΠ·Π±Π°Π²Π»Π΅Π½ ΠΎΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ, Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΡ ΡΠ΅Π°Π½ΠΈΠΌΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΡΠ°ΡΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ ΠΈΠ·Π²Π½Π΅ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΡΠΈΠ½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ°. - ΠΠΎΠ±Π°Π²Π»Π΅Π½ ΠΌΠ΅ΡΠΎΠ΄
os.pidfd_open , ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ΄ΡΠ° Linux «pidfd» Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΈΡΡΠ°ΡΠΈΠΈ Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ PID (pidfd ΡΠ²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ ΠΈ Π½Π΅ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ PID ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΈΠ²ΡΠ·Π°Π½ ΠΊ Π΄ΡΡΠ³ΠΎΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°, Π°ΡΡΠΎΡΠΈΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Ρ ΡΡΠΈΠΌ PID). - ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Unicode ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π° Π΄ΠΎ Π²Π΅ΡΡΠΈΠΈ 13.0.0.
- Π£ΡΡΡΠ°Π½Π΅Π½Π°
ΡΡΠ΅ΡΠΊΠ° ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° Python Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅. - ΠΡΠΎΠ²Π΅Π΄Π΅Π½Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ
ΡΠΈΠΏΠΎΠ² range, tuple, set, frozenset, list ΠΈ dict,
ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Π°Ρ Π·Π° ΡΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Π±ΡΡΡΡΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° Vectorcall Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ Π±ΡΡΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΌ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘ΠΈ. - ΠΠΎΠ΄ΡΠ»ΠΈ _abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, operator, resource, time ΠΈ _weakref ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Π½Ρ Π½Π° Π·Π°Π³ΡΡΠ·ΠΊΡ Ρ
ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ°Π΄ΠΈΠΉ . - ΠΠΎΠ΄ΡΠ»ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ audioop, ast, grp, _hashlib, pwd, _posixsubprocess, random, select, struct, termios ΠΈ zlib ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Π½Ρ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠ³ΠΎ
ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ABI , ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅ΡΠ°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΡΠ±ΠΎΡΠΎΠΊ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ-ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ Π²Π΅ΡΡΠΈΠΉ Python (ΠΏΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Π²Π΅ΡΡΠΈΠΈ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ-ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ, ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΡΠΎΠ±ΡΠ°Π½Π½ΡΠ΅ Π΄Π»Ρ 3.9, ΡΠΌΠΎΠ³ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² Π²Π΅ΡΠΊΠ΅ 3.10). - Π ΠΌΠΎΠ΄ΡΠ»Π΅ asyncio ΠΈΠ·-Π·Π° ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΡ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° reuse_address (ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ SO_REUSEADDR Π΄Π»Ρ UDP Π² Linux ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·Π½ΡΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»ΡΡΡ ΡΠ»ΡΡΠ°ΡΡΠΈΠ΅ ΡΠΎΠΊΠ΅ΡΡ ΠΊ UDP-ΠΏΠΎΡΡΡ).
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π½ΠΎΠ²ΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠ²ΡΡΠ΅Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠΈΠ³Π½Π°Π»ΠΎΠ² Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ
, ΠΏΠΎΠ²ΡΡΠ΅Π½Π° ΡΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ subprocess Π² ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ FreeBSD ΠΈ ΡΡΠΊΠΎΡΠ΅Π½ΠΎ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
(Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ «for y in [expr]» ΡΠ΅ΠΏΠ΅ΡΡ Π½Π΅ ΡΡΡΡΠΏΠ°Π΅Ρ ΠΏΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ «y = expr»). Π ΡΠ΅Π»ΠΎΠΌ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠ΅ΡΡΠΎΠ²
ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Π²Π΅ΡΠΊΠΎΠΉ 3.8 (ΡΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ΅ΡΡΠ°Ρ write_local ΠΈ write_deque):ΠΠ΅ΡΡΠΈΡ Python 3.4 3.5 3.6 3.7 3.8 3.9
————— — — — — — —Variable and attribute read access:
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.9Variable and attribute write access:
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.7Data structure read access:
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.6Data structure write access:
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.8Stack (or queue) operations:
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.5Timing loop:
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