ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯áá
áºááŸá
áºááŒá®ážáá±á¬ááº
ááᯠáá¬áááœá²á¡áá
áºááœáẠá¡áá¯ááºá
áá¯ááºáááºááŸá¬ áá±á¬ááºáá¬áááœá²ááá¯ááºááŒááºáá® áá«ážáá¡ááá¯ááœááºá ááá¯ááá¯áááºááŸá¬á Python 3.9 ááœááºááŸááá»áááºááŸáá·áº ááá¯ááºááá¯ááºáááºá
- Built-in dict class ááá¯á¡áá¯á¶ážááŒá¯á áááºááŸááºáá¬ážáá±á¬ á¡áááá¬ááºáá»á¬ážááœááºá
áááºáááºááŸá¬áž áá±á«ááºážá ááºážáá¬ážáá±á¬ á¡á±á¬áºááá±áá¬áá»á¬ážá¡ááœáẠáá¶á·ááá¯ážááŸá¯ "|" ááŸáá·áº "|=" á¡ááºááááºáá»á¬ážá {**d1á **d2} ááŸáá·áº á¡áááá¬ááºáá»á¬áž áá±á«ááºážá ááºážáááºá¡ááœáẠááááºá á¡ááá¯ááŒá¯áá¬ážáá±á¬ dict.update áááºážáááºážáá»á¬ážááᯠááŒáá·áºá áœááºáá±ážáááºá>>> x = {"key1": "value1 from x", "key2": "value2 from x"}
>>> y = {"key2": "y á០value2", "key3": "y á០value3"}>>> x | y
{'key1': 'value1 from x', 'key2': 'value2 from y', 'key3': 'value3 á០y'}>>> y | x
{'key2': 'x á០value2'á 'key3'- 'y á០value3'á 'key1': 'value1 from x'} - ááá·áºááœááºážáá¬ážáá±á¬ á¡áá»áá¯ážá¡á
á¬ážáá»á¬áž á
á¯á
ááºážááŸá¯ááœáẠá
á¬ááá¯ááºááá·áº áá±á¬áºáá»á°ážá០ááááºááœááºážáá² á¡ááŒá±áá¶á¡áá»áá¯ážá¡á
á¬ážáá»á¬ážá¡ááŒá
Ạá¡áá¯á¶ážááŒá¯ááá¯ááºááá·áº á
á¬áááºážá á¡áááá·áºááŸáá·áº tuple áá«áááºáááºá á¡á²áá«ááœá±á typing.List á¡á
á¬áž typing.Dict ááŸáá·áº typing.Tuple ááᯠááá¯áááºáááºááŸááºááá¯ááºáá«ááŒá®
á á¬áááºážá dict ááŸáá·áº tuple ááá¯áᬠáá±á¬áºááŒáá«-def greet_all(á¡áááºáá»á¬áž- á á¬áááºáž[str]) --> áááŸá-
á¡áááºáá¬ááá»á¬ážá¡ááœááº:
print("áááºá¹ááá¬áá«" á¡áááº) -
áá±ážá¡ááºááŒáááºá áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááŸáá·áº ááááºážááŸááºáá»á¬ážááᯠááŸááºáá¬ážááŒááºážá¡ááœáẠááŒá±á¬ááºážááœááºááŒááºááœáẠáááááá¬áá»á¬ážá ááŸááºáá»ááºáá»á¬ážááᯠáá°ážááœá²ááŒááºážá¡ááœááºá á á¬ááá¯ááºááá·áº module ááœáẠááŸááºá á¯áááºáá¬ážáá±á¬ á¡áá»áá¯ážá¡á á¬ážá¡áá áºááᯠááá·áºááœááºážáá¬ážááŒá®ážá static analysis á¡ááœáẠááá¯á·ááá¯áẠrun-time optimizations á¡ááœáẠá¡áá¯á¶ážááŒá¯ááá¯ááºááá·áº áá±á¬ááºááẠmetadata ááŒáá·áº ááŸáááŒá®ážáá¬ážá¡áá»áá¯ážá¡á á¬ážáá»á¬ážááᯠááá¯ážáá»á²á·áá¬ážáááºá áá¯ááºá០áááºáá¬áá±áá¬ááᯠáááºáá±á¬ááºáááºá include_extras ááá·áºáááºáá±á¬ááºááᯠtyping.get_type_hints() áááºážáááºážááá¯á· ááá·áºááœááºážáá¬ážáááºácharType = Annotated[int, ctype("char")] UnsignedShort = Annotated[int, struct2.ctype('H')]
-
á¡á¬ážáá»á±á¬á·ááœá¬ážáááºá á¡ááŸáááºáá°áá»á¬ážá¡ááœáẠááá¹áá«ááá¯á¡ááºáá»ááºáá»á¬áž - ááá±á¬ááºáá»á¬ážááᯠif and while ááœáẠá¡áá¯á¶ážááŒá¯ááẠááá·áºáá»á±á¬áºááá·áº áááºááá·áºá¡áá¯á¶ážá¡ááŸá¯ááºážááá¯áááᯠá¡ááŸáááºáá°á¡ááŒá Ạááá¯á¡áá¯á¶ážááŒá¯ááá¯ááºáá«ááŒá®á ááŒá±á¬ááºážáá²ááŸá¯ááẠPyQt5 áá¯ááºááááºááá¯ááºááŸá¯ááᯠáááá¬áááºááŸá¬ážá áœá¬ááá¯ážáááºá á±ááŒá®áž ဠmodule áááááºážááááºážááŸá¯ááᯠááá¯ážááŸááºážá á±áááº-ááŒá áºáá²á·áááº-
button_0 = ááá¯ááºáá»á¬áž[0] @button_0.clicked.connectááá¯áááºáá±ážááá¯ááºáááº-
@buttons[0].clicked.connect - á
á¶ááŒá
á¬ááŒáá·áºááá¯ááºááá¯á·
áááºááŒá±á¬ááẠmodule áá áºáá¯áá±á¬áºáááºáž IANA á á¶áá±á¬áºáá»áááºáá±áá¬áá±á·á áºá០á¡áá»ááºá¡áááºáá»á¬áž áá«áááºáááºá>>> zoneinfo á០ZoneInfo ááá¯áááºááœááºážáá«á
>>> datetime á០import datetime, timedelta
>>> # ááœá±áá¬áá®
>>> dt = áááºá áœá²(2020á 10á 31á 12á tzinfo=ZoneInfo("America/Los_Angeles"))
>>> print(dt)
2020-10-31 12:00:00-07:00>>> dt.tzname()
'áá®áá®áá®'>>> #á á¶áá±á¬áºáá»áááº
>>> dt += timedelta(days=7)
>>> print(dt)
2020-11-07 12:00:00-08:00>>> print(dt.tzname())
PST - áááºážááœáẠgraphlib module ááá¯ááá·áºááœááºážáá¬ážáááºá
á¡áá±á¬ááºá¡áááºáá±á¬áºáá²á·áááºá ááááºáá»á¬ážá topological sorting á¡ááœááºáá¶á·ááá¯ážááŸá¯á -
á¡ááá¯ááŒá¯áááºá ááŸá±á·áááºáá»á¬ážááŸáá·áº á á¬ááŒá±á¬ááºážá¡áá¯á¶ážáá»á¬ážááᯠáááºááŸá¬ážáááºá¡ááœáẠáááºážáááºážá¡áá áºáá»á¬áž - str.removeprefix(prefix) ááŸáá·áº str.removesuffix(suffix)á áááºážáááºážáá»á¬ážááᯠstrá bytesá bytearray ááŸáá·áº collections.UserString objects áá»á¬ážááá¯á· áá±á«ááºážááá·áºáá¬ážáá«áááºá>>> s = "FooBar"
>>> s.removeprefix("Foo")
'áá¬áž' -
áá«áááºáá²á·áááºá parser á¡áá áºáá»ááẠ(parsing Expression Grammar) parser ááᯠá¡á á¬ážááá¯ážáááºáLL(1) . parser á¡áá áºááá¯á¡áá¯á¶ážááŒá¯ááŒááºážááẠLL(1) ááœááºááá·áºáááºáá»ááºáá»á¬ážááá¯áá»á±á¬áºááŒááºáááºá¡áá¯á¶ážááŒá¯ááá·áº "hacks" á¡áá»áá¯á·ááá¯áááºááŸá¬ážááá¯ááºá á±ááŒá®áž parser ááá¯ááááºážááááºážáááºá¡ááœááºáá¯ááºá¡á¬ážáá¯ááºáá»á ááááºááá¯áááááá¬áá¬áá»áŸá±á¬á·áá»á á±áááºá á áœááºážáá±á¬ááºáááºá¡áá ááœá²ááŒááºážá áááºááŒá¬ááŸá¯á¡áá áºááẠááááºáá¯á¶á á¶ááŸáá·áº áá°áá®áá±á¬á¡ááá·áºááœááºááŸáááŒá®ážá ááá¯á·áá±á¬áº áá¬áá¬á áá¬ážá¡áá áºáá»á¬ážááᯠáá®ááá¯ááºážáá¯ááºááá·áºá¡áá«ááœáẠááá¯ááá¯ááœááºáááºá áœá¬áá¶á á¬ážááá¯ááºá á±ááá·áº ááŒá±á¬ááºážááœááºááŒááºááœááºá¡ááŒá±á¡áá±ááœáẠáááºážáááºáááááá¬áá¬áá¬ááœááºáá±áá«áááºá áá«áá¬áá¯áẠá¡áá±á¬ááºážááᯠááᯠááááºážáááºážáá¬ážááŒá®áž "-X oldparser" á¡áᶠááá¯á·ááá¯áẠ"PYTHONOLDPARSER=1" áááºáááºážáá»áẠááŒá±á¬ááºážáá²ááŸá¯á¡á¬áž á¡áá¯á¶ážááŒá¯á ááŒááºáááºáá±ážááá¯á·ááá¯ááºáá±á¬áºáááºáž áá¯ááºáá±ááŸá¯ 3.10 ááœáẠáááºááŸá¬ážáá«áááºá -
áá±ážáá¬ážáááºá PyState_FindModule áá¯ááºáá±á¬ááºáá»ááºááᯠá¡áá¯á¶ážááŒá¯á áá±á¬áºáá»á°ážááŒááºáááºááᯠááŸá¬ááœá±ááŒááºážá¡á á¬áž ááá¯ááºááá¯ááºááœáŸááºááŒááá·áº á¡ááá¯ážá¡áá¬ážááᯠá¡áá¯á¶ážááŒá¯á áááºááŸááºáá¬ážááá·áº áá±á¬áºáá»á°ážáá»á¬ážá á¡ááŒá±á¡áá±á¡á¬áž C ááá¯ážáá»á²á·ááŸá¯áááºážáááºážáá»á¬ážá¡ááœáẠáááºáá±á¬ááºááŒáá·áºááŸá¯ááá¯ááºááŸá¯ á áœááºážáááºá ááŒá±á¬ááºážáá²ááŸá¯ááẠmodule á¡ááŒá±á¡áá±ááá¯á á áºáá±ážááŒááºážáá¡áá±á«áºáá¶ááá¯áá»áŸá±á¬á·áá»ááŒááºážááá¯á·ááá¯ááºáá¯á¶ážááááºááŸá¬ážááŒááºážááŒáá·áº C module áá»á¬ážáá áœááºážáá±á¬ááºáááºááá¯ááá¯ážááŒáŸáá·áºáááºááœáá·áºááŒá¯áááºá áá±á¬áºáá»á°ážáá áºáá¯ááᯠá¡áááºážáá áºáá¯ááŸáá·áº áá»áááºáááºáááºá C-function PyType_FromModuleAndSpec() ááᯠááá°áááºá áá±á¬áºáá»á°ážááŸáá·áº áááºážáá¡ááŒá±á¡áá±á C-functions PyType_GetModule() ááŸáá·áº PyType_GetModuleState() ááá¯á·ááᯠá¡ááá¯ááŒá¯áá¬ážááŒá®áž á¡áááºážá¡á¬áž á¡áá¯á¶ážááŒá¯ááœáá·áºááŸáááá·áº áááºážáááºážááᯠáá¶á·ááá¯ážáá±ážáááºá áááºážááá¯áááºááŸááºáá¬ááœáẠC-function PyCMethod ááŸáá·áº METH_METHOD á¡áá¶ááᯠá¡ááá¯ááŒá¯áá¬ážáááºá - á¡ááŸáá¯ááºááááºáž
áá±ážááá¯á·áá²á·áááºá á¡ááŒá®ážáááºáá¯ááºáá±á¬ááºááŒá®ážáá±á¬áẠááŒááºáááá¯á·áááºáá±á¬ááºááá¯ááºááá·áºá¡áá¬áá»á¬ážáá«áááºááá·áº ááŒááºáááºá¡áááºáááºáá¬ááá·áºá¡áá¬áá»á¬ážáá«ááŸááá±á¬ á á¯á ááºážááŸá¯áá»á¬ážááᯠáá±á¬á·ááºáá»ááŒááºážááŸá - ááá·áºáá¬ážáá±á¬áááºážáááºáž
os.pidfd_open Linux kernel ááœá²á áá Ạ"pidfd" á¡á¬áž PID ááŒááºáááºá¡áá¯á¶ážááŒá¯ááŸá¯ á¡ááŒá±á¡áá±á¡á¬áž ááá¯ááºááœááºááẠá¡áá¯á¶ážááŒá¯ááẠááœáá·áºááŒá¯ááẠ(pidfd ááẠáá®ážááŒá¬ážáá¯ááºáááºážá ááºáá áºáá¯ááŸáá·áº áááºá ááºáá±ááŒá®áž áááŒá±á¬ááºážáá²áá±á¬áºáááºáž PID ááẠá¡ááá¯áá« PID ááŸáá·áºáááºá ááºáá±áá±á¬ áááºááŸááá¯ááºáááºážá ááºááᯠáááºá á²ááŒá®ážáá±á¬áẠá¡ááŒá¬ážáá¯ááºáááºážá ááºáá áºáá¯ááŸáá·áº áááºá ááºááá¯ááºáá±á¬áºáááºážá ) - áá°áá®áá¯ááºáááºááŸááºáá»ááºá¡ááœáẠáá¶á·ááá¯ážááŸá¯á¡á¬áž áá¬ážááŸááºáž 13.0.0 ááá¯á· á¡ááºááááºáá¯ááºáá¬ážáááºá
- áááºáá¯ááºáá¶ááááºá
memory ááá¯á ááá·áºááŒááºážá áá°áá®áá±á¬áá¯ááºáááºážá ááºááœáẠPython á áá¬ážááŒááºááᯠááŒááºáááºá áááºáá±á¬á¡áá«á - Built-in á¡áá»áá¯ážá¡á
á¬ážáá»á¬áž á¡ááá¯ááºážá¡ááŒá¬ážá tupleá setá frozensetá list ááŸáá·áº dict ááá¯á·á á
áœááºážáá±á¬ááºáááºááᯠá¡áá±á¬ááºážáá¯á¶ážááŒá
áºá¡á±á¬áẠááŒá¯áá¯ááºáá¬ážáá«áááºá
á¡áá±á¬ááºá¡áááºáá±á¬áºáá²á·áááºá C áá¬áá¬á áá¬ážááŒáá·áº áá±ážáá¬ážáá¬ážáá±á¬ á¡áá¬ááá¹áá¯áá»á¬ážáᶠááá¯ááá¯ááŒááºáááºá áœá¬ áááºáá±á¬ááºááá¯ááºá á±áááºá¡ááœáẠVectorcall ááŒááºáááºážáááá¯ááá¯áá±á¬ááᯠá¡áá¯á¶ážááŒá¯ááŒááºážá - áá±á¬áºáá»á°ážáá»á¬áž _abcá audioopá _bz2á _codecsá _contextvarsá _cryptá _functoolsá _jsoná _localeá á¡á±á¬áºááá±áá¬á á¡áááºážá¡ááŒá
áºá á¡áá»áááºááŸáá·áº _weakref ááá¯á·á០áááºáá±ážáááº
á¡ááá·áºáá»á¬ážá áœá¬ááŒáá·áº á áááºááŒááºáž . - á
á¶ááŒá
á¬ááŒáá·áºááá¯áẠáá±á¬áºáá»á°ážáá»á¬áž audioopá astá grpá _hashlibá pwdá _posixsubprocessá áá»áááºážá ááœá±ážá structá termios ááŸáá·áº zlib ááá¯á·ááᯠááá·áºáááºá¡áá¯á¶ážááŒá¯ááẠááŒá±á¬ááºážááá¯ááºáá«ááŒá®
áááºááŒáááºáá±á¬ ABI Python á ááá°áá®áá±á¬áá¬ážááŸááºážáá»á¬ážá¡ááœáẠextension modules áá»á¬ážá á¯áá±ážááŒááºážááá¯ááºáá±á¬ááºááá¯ááºááŸá¯ááŒá¿áá¬ááá¯ááŒá±ááŸááºážáá±ážáá±á¬ (áá¬ážááŸááºážááá¯ááœááºážáá¶ááá·áºá¡áá«á extension modules áá»á¬ážááá¯ááŒááºáááºáááºáá±á¬ááºáááºáááá¯á¡ááºáá«á 3.9 á¡ááœááºá á¯á ááºážáá¬ážáá±á¬ modules áá»á¬ážááẠ3.10 áá¬áááœá²ááœááºá¡áá¯ááºáá¯ááºááá¯ááºáá«áááº)á - asyncio module ááẠááŒá áºááá¯ááºáá»á±ááŸááá±á¬ áá¯á¶ááŒá¯á¶áá±ážááŒá¿áá¬áá»á¬ážááŒá±á¬áá·áº reuse_address áá«áá¬áá®áá¬á¡ááœáẠáá¶á·ááá¯ážááŸá¯ááᯠáááºááá·áºáá¬ážáá«ááẠ(Linux ááŸá SO_REUSEADDR á¡ááœáẠUDP ááá¯á¡áá¯á¶ážááŒá¯á UDP port áá áºáá¯ááá¯á· áá¬ážáá±á¬ááºááŒááºážá áááºáá»á¬ážááᯠáá»áááºáááºááẠááá°áá®áá±á¬áá¯ááºáááºážá ááºáá»á¬ážááᯠááœáá·áºááŒá¯áááº)á
- ááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬ááºáá¯ááºáá±á¬ááºááŸá¯á¡áá
áºáá»á¬ážááᯠááá·áºááœááºážáá¬ážááŒá®ážá á¥ááá¬á Multi-threaded applications áá»á¬ážááœáẠsignal handlers áá»á¬ážá á
áœááºážáá±á¬ááºáááºááᯠááŒáŸáá·áºáááºáá±ážááŒááºážá FreeBSD áááºáááºážáá»ááºááŸá subprocess module á á¡ááŒááºááŸá¯ááºáž ááá¯ážááŒáá·áºáá¬ááŒá®áž áá¬áá® variables áá»á¬ážááᯠááá¯ááá¯ááŒááºáááºá
áœá¬ áá¬áááºáá±ážááŒááºáž (â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
ââââââââââââââááŒá±á¬ááºážáá²ááá¯ááºáá±á¬ ááŸáá·áº áááºááœáŸááºážáá»áẠáááºááŸá¯ááœáá·áº-
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 áá.á áá.á áá.á áá.á áá.á áá.á
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 -
áááºááŸá¬ážáá²á·áááºá html.parser.HTMLParser ááŸá unescape() method á¡áá«á¡ááẠááááºáá¯ááºááœáŸááºááŸá¯ááœáẠDeprecationWarning ááᯠááŒá áºáá±á«áºá á±áá²á·áá±á¬ Python 2.7 áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááŸáá·áº áááºážáááºážáá»á¬ážá áœá¬á
array.array ááœáẠtostring() ááŸáá·áº fromstring()á threading ááŸá isAlive()á Threadá getchildren() ááŸáá·áº getiterator()á ElementTree ááŸá sys.getcheckinterval(), sys.setcheckinterval(), asyncio.Task.current_task(), asyncio.Task.all_tasks(), base64.encodestring() ááŸáá·áº base64.decodestring()á
source: opennet.ru