Π‘Π»Π΅Π΄ Π³ΠΎΠ΄ΠΈΠ½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ Π·Π½Π°ΡΠΈΡΠ΅Π»Π΅Π½ Π½ΠΎΠ² Π²Π°ΡΠΈΠ°Π½Ρ Π½Π° Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ Python 3.14. ΠΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½Π° Π² ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π³ΠΎΠ΄ΠΈΠ½Π° ΠΈ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π°, ΡΠ»Π΅Π΄ ΠΊΠΎΠ΅ΡΠΎ Π·Π° Π½Π΅Ρ ΡΠ΅ ΡΠ΅ ΡΠΎΡΠΌΡΠ»ΠΈΡΠ°Ρ ΠΊΠΎΡΠ΅ΠΊΡΠΈΠΈ Π·Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ ΠΎΡΠ΅ ΡΡΠΈ ΠΈ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° Π³ΠΎΠ΄ΠΈΠ½ΠΈ.
Π‘ΡΠ΅Π΄ Π½ΠΎΠ²ΠΎΠ²ΡΠ²Π΅Π΄Π΅Π½ΠΈΡΡΠ°, Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ Π² Python 3.14 (1, 2, 3):
- Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π΅ ΠΎΡΠΈΡΠΈΠ°Π»Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ Π½Π° CPython Π±Π΅Π· Π³Π»ΠΎΠ±Π°Π»Π½Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° Π½Π° ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° (GIL, Global Interpreter Lock). ΠΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡΡΠ° Π±Π΅Π· GIL ΡΠ΅ΡΠ°Π²Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΡΠ΄ΡΠ΅Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ, ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°Π½ ΠΎΡ ΡΠ°ΠΊΡΠ°, ΡΠ΅ Π³Π»ΠΎΠ±Π°Π»Π½Π°ΡΠ° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ Π΄ΠΎΡΡΡΠΏΠ²Π°Π½Π΅ Π½Π° ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½ΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ ΠΎΡ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π½ΠΈΡΠΊΠΈ. ΠΠ΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° GIL Π²ΠΎΠ΄ΠΈ Π΄ΠΎ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΠ°Π·Ρ ΠΎΠ΄ΠΈ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² ΡΡΠ±ΠΈΡΠ°ΡΠ° Π½Π° Π±ΠΎΠΊΠ»ΡΠΊ, ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΈ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΈΡΠ΅ Π·Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π°ΡΠ°Π΄ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π±ΡΠΎΠ΅Π½Π΅ Π½Π° ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ Π·Π° ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½Π΅ Π½Π° Π½ΠΈΡΠΊΠΈ, Π½Π°Π±Π»ΡΠ΄Π°Π²Π° ΡΠ΅ ΡΠΏΠ°Π΄ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° Π΅Π΄Π½ΠΎΠΏΠΎΡΠΎΡΠ½ΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Ρ ΠΎΠΊΠΎΠ»ΠΎ 10%. ΠΡΠ΅ ΠΏΠ°ΠΊ ΡΠ΅Π·ΠΈ ΡΠ°Π·Ρ ΠΎΠ΄ΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΊΠΎΠΌΠΏΠ΅Π½ΡΠΈΡΠ°Ρ ΡΡΠ΅Π· ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° t-ΡΡΡΠΈΠ½Π³ΠΎΠ²Π΅ (Π»ΠΈΡΠ΅ΡΠ°Π»ΠΈ Ρ ΠΏΡΠ΅ΡΠΈΠΊΡ ‘t’), ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° f-ΡΡΡΠΈΠ½Π³ΠΎΠ²Π΅ΡΠ΅, Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°ΡΠΈ Π½Π° ΡΠ°Π±Π»ΠΎΠ½ΠΈ Π² Π½ΠΈΠ·ΠΎΠ²Π΅. ΠΠ° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΡ f-ΡΡΡΠΈΠ½Π³ΠΎΠ²Π΅ΡΠ΅, t-ΡΡΡΠΈΠ½Π³ΠΎΠ²Π΅ΡΠ΅ Π²ΡΡΡΠ°Ρ ΠΎΠ±Π΅ΠΊΡ, ΠΊΠΎΠΉΡΠΎ ΠΎΡΠ΄Π΅Π»Π½ΠΎ ΡΡΡ ΡΠ°Π½ΡΠ²Π° ΡΡΠ°ΡΠΈΡΠ½ΠΈΡΠ΅ Π½ΠΈΠ·ΠΎΠ²ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ Π·Π°ΠΌΠ΅ΡΡΠ΅Π½ΠΈΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ. ΠΡΠ΄Π΅Π»Π½ΠΎΡΠΎ ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΏΡΠΈΠ²ΡΡΠ·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΎΠΊΠ°Π·Π²Π°Ρ Π²Π»ΠΈΡΠ½ΠΈΠ΅ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½ΠΎ Π½Π° Π·Π°ΠΌΠ΅ΡΡΠ΅Π½ΠΈΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π²ΠΊΠ»ΡΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°Ρ Π·Π° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ Π½Π° Π·Π°ΠΌΠ΅ΡΡΠ΅Π½Π°ΡΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡ Π² Π³Π»Π°Π²Π½ΠΈ Π±ΡΠΊΠ²ΠΈ ΠΈΠ»ΠΈ Π·Π° Π΅ΠΊΡΠ°Π½ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈ ΠΏΡΠΈ ΠΏΠΎΠ΄ΠΌΡΠ½Π°ΡΠ° Ρ Π²ΡΠ½ΡΠ½ΠΈ Π΄Π°Π½Π½ΠΈ. variety = ‘Stilton’ template = t’ΠΠΏΠΈΡΠ°ΠΉΡΠ΅ ΠΌΠ°Π»ΠΊΠΎ {variety} ΡΠΈΡΠ΅Π½Π΅!’ print(list(template)) print(lower_upper(template)) [‘ΠΠΏΠΈΡΠ°ΠΉΡΠ΅ ΠΌΠ°Π»ΠΊΠΎ ‘, Interpolation(‘Stilton’, ‘variety’, None, »), ‘ ΡΠΈΡΠ΅Π½Π΅!’] ΠΠΏΠΈΡΠ°ΠΉΡΠ΅ ΠΌΠ°Π»ΠΊΠΎ STILTON ΡΠΈΡΠ΅Π½Π΅! attributes = {‘src’: ‘limburger.jpg’, ‘alt’: ‘ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ ΡΠΈΡΠ΅Π½Π΅’} template = t'<img {attributes}>print (html(template)) <img src="»limburger.jpg»" alt="»ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ" cheese» />
- Π ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ ΠΌΠΎΠ΄ΡΠ»ΡΡ concurrent.interpreters, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π² Π΅Π΄ΠΈΠ½ ΠΏΡΠΎΡΠ΅Ρ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ΠΈ Π΅Π΄Π½ΠΎ ΠΎΡ Π΄ΡΡΠ³ΠΎ ΠΊΠΎΠΏΠΈΡ Π½Π° Python ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ°. ΠΠΎ-ΡΠ°Π½ΠΎ ΡΠ°Π·ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π±Π΅ΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½Π° ΡΠ°ΠΌΠΎ ΡΡΠ΅Π· C-API. ΠΠ°ΡΠ°Π»Π΅Π»Π½ΠΎΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠ°, Π½ΠΎ Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΡΠΎΡΠ΅ΡΠ½Π°ΡΠ° ΠΌΠΎΠ΄Π΅Π», ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΡΠ΅ΡΡΡΡΠΈ. ΠΠ° Π½ΠΈΠ²ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π·Π° ΡΠ°Π·Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ ΠΏΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΌΠΎΠ΄Π΅Π» Π½Π° Π°ΠΊΡΡΠΎΡΠΈΡΠ΅ ΠΈ CSP (Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ).
- Π CPython Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ Π½ΠΎΠ² ΡΠΈΠΏ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Ρ Π²ΠΎΡΡΠΎΠ²ΠΈ ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ C-ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Ρ ΠΎΡΠ΄Π΅Π»Π½ΠΈ Π±Π°ΠΉΡΠΊΠΎΠ΄ΠΎΠ²Π΅ Π½Π° Python, Π²ΠΌΠ΅ΡΡΠΎ Π΅Π΄Π½Π° Π³ΠΎΠ»ΡΠΌΠ° ΡΡΠ½ΠΊΡΠΈΡ Ρ ΠΈΠ·ΡΠ°Π· switch/case. ΠΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ Π² Clang 19 Π½ΠΎΠ²ΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ ΠΏΠΎΠΊΠ°Π·Π²Π° ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Ρ 3-5% ΠΏΡΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅ΡΡΠΎΠ²Π΅ pyperformance. ΠΠΎΠ²ΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π΅ Π½Π°Π»ΠΈΡΠ΅Π½ ΠΊΠ°ΡΠΎ ΠΎΠΏΡΠΈΡ Π·Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈΡΠ΅ x86-64 ΠΈ AArch64 ΠΈ ΠΈΠ·ΠΈΡΠΊΠ²Π° Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ ΠΏΠΎΠ½Π΅ Π²Π΅ΡΡΠΈΡ Clang 19 (ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° GCC ΠΎΠ±Π΅ΡΠ°Π²Π°Ρ ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ).
- ΠΡΠΈΠ³ΡΡΠ΅Π½Π° Π΅ ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π°Π½ΠΎΡΠ°ΡΠΈΠΈ Π·Π° ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠ»Π°ΡΠΎΠ²Π΅ ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ. ΠΠ½ΠΎΡΠ°ΡΠΈΠΈΡΠ΅ Π²Π΅ΡΠ΅ Π½Π΅ ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°Ρ Π²Π΅Π΄Π½Π°Π³Π°, Π° ΡΠ΅ Π·Π°ΠΏΠ°Π·Π²Π°Ρ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΡΠ΅ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°Ρ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡ. ΠΠΎΠ²ΠΎΡΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ ΠΎΠΏΡΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΠ° Ρ Π°Π½ΠΎΡΠ°ΡΠΈΠΈΡΠ΅ ΠΈ Π΄Π° ΡΠ΅ Π½Π°ΠΌΠ°Π»ΡΡ ΡΠ°Π·Ρ ΠΎΠ΄ΠΈΡΠ΅ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π°Π½ΠΎΡΠ°ΡΠΈΠΈΡΠ΅ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅. ΠΠ° ΠΈΠ½ΡΠΏΠ΅ΠΊΡΠΈΡ Π½Π° ΠΎΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠ΅ Π°Π½ΠΎΡΠ°ΡΠΈΠΈ Π΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ ΠΌΠΎΠ΄ΡΠ» annotationlib.
- Π ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ ΠΏΠ°ΠΊΠ΅Ρ compression, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°Π½Π΅ ΠΈ ΡΠ°Π·ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ. ΠΡΠ²Π΅Π½ ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅ compression.lzma, compression.bz2, compression.gzip ΠΈ compression.zlib, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡΠΈ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΡΠ°, ΠΏΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° Π½Π°Π»ΠΈΡΠ½Π° Π² ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅ lzma, bz2, gzip ΠΈ zlib, Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ Π½ΠΎΠ² ΠΌΠΎΠ΄ΡΠ» compression.zstd Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Π°Π»Π³ΠΎΡΠΈΡΡΠΌΠ° ZSTD (Zstandard).
- Π ΠΈΠ·ΡΠ°Π·ΠΈΡΠ΅ Β«exceptΒ» ΠΈ Β«except*Β» Π΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ Π΄Π° Π½Π΅ ΡΠ΅ ΠΏΠΎΡΡΠ°Π²Ρ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π² ΡΠΊΠΎΠ±ΠΈ, Π°ΠΊΠΎ Π² ΠΈΠ·ΡΠ°Π·Π° ΡΠ΅ ΠΏΠΎΡΠΎΡΠ²Π°Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠΈΠΏΠ° ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ Π½Π΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ»ΡΡΠΎΠ²ΠΎΡΠΎ ΡΠ»ΠΎΠ²ΠΎ Β«asΒ». try: connect_to_server() except TimeoutError, ConnectionRefusedError: print(βΠΡΠ΅ΠΆΠ°ΡΠ° Π΅ ΡΠΏΡΡΠ»Π° Π΄Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°!β)
- Π ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½Π°ΡΠ° ΠΎΠ±Π²ΠΈΠ²ΠΊΠ° PyREPL Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ½Π° ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΊΠ°. ΠΠΊΠ»ΡΡΠ΅Π½ Π΅ ΡΠ²Π΅ΡΠ΅Π½ ΠΈΠ·Ρ ΠΎΠ΄ Π² CLI ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈΡΠ΅ ΠΎΡ ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅ unittest, argparse, json ΠΈ calendar.
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π·Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Π½Π° Π²ΡΠ½ΡΠ½ΠΈ Π΄Π΅Π±ΡΠ³Π΅ΡΠΈ ΠΈ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²ΡΠΈΡΠΈ ΠΊΡΠΌ Π²Π΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ Π½Π° CPython, Π±Π΅Π· Π΄Π° Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΏΠΈΡΠ°Π½Π΅ ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ ΠΈ Π±Π΅Π· Π΄Π° Π²Π»ΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°.
- Π ΠΌΠΎΠ΄ΡΠ»Π° pdb Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ ΠΊΡΠΌ ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ Python ΠΏΡΠΎΡΠ΅ΡΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ ΠΊΡΠΌ ΠΏΡΠΎΡΠ΅Ρ Ρ Π½ΠΎΠΌΠ΅Ρ 1234 ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Β«python -m pdb -p 1234Β».
- Π ΠΌΠΎΠ΄ΡΠ»Π° uuid ΡΠ° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ uuid6(), uuid7() ΠΈ uuid8() Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Π²Π΅ΡΡΠΈΠΈ 6, 7 ΠΈ 8 Π½Π° UUID ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΈΡΠ΅.
- ΠΠΎΠ±Π°Π²Π΅Π½ΠΎ Π΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΈΠ·ΡΠ°Π·ΠΈΡΠ΅ Β«returnΒ», Β«breakΒ» ΠΈ Β«continueΒ» Π·Π° Π½Π°ΠΏΡΡΠΊΠ°Π½Π΅ Π½Π° Π±Π»ΠΎΠΊΠ° Β«finallyΒ».
- ΠΠΎΠ±Π°Π²Π΅Π½ΠΎ Π΅ C API PyInitConfig Π·Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° Python Π±Π΅Π· ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ ΡΡΡ ΡΡΡΡΠΊΡΡΡΠΈ Π½Π° C, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠΎ ΠΏΡΠ°Π²Π΅Π½Π΅ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π΅ Π½Π°ΡΡΡΠ°Π²Π°Ρ ABI. ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡ ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Add PyConfig_Get() ΠΈ PyConfig_Set() Π·Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ ΠΈ Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΡΡΠ½ΠΊΡΠΈΡ PyInitConfig_AddModule() Π·Π° Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° ΠΌΠΎΠ΄ΡΠ» Ρ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅.
- ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈ ΡΠ° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡΡΠ° Π·Π° Π³ΡΠ΅ΡΠΊΠΈ. ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° ΠΏΡΠ΅ΠΏΠΎΡΡΠΊΠΈ Π·Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ ΠΏΠ΅ΡΠ°ΡΠ½ΠΈ Π³ΡΠ΅ΡΠΊΠΈ Π² ΠΊΠ»ΡΡΠΎΠ²ΠΈΡΠ΅ Π΄ΡΠΌΠΈ.
- ΠΠΊΠ»ΡΡΠ΅Π½ΠΈ ΡΠ° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΡ ΡΠ°Π±ΠΎΡΠ°ΡΠ° ΠΏΠΎ Π·Π°ΠΌΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° Python ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈΡΠ΅ Π½Π° ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΡΠΊΠΈΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ, ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π½ΠΈ Π² ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅ hashlib ΠΈ hmac, Ρ Π²Π°ΡΠΈΠ°Π½ΡΠΈ Ρ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎ (ΡΠΎΡΠΌΠ°Π»Π½ΠΎ) Π΄ΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΡΡΠ²ΠΎ Π·Π° Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎΡΡ, ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ΠΈ ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Β«HACL*Β». ΠΡΠΈΡΠΊΠΈ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠ½ΠΈ Π² Python Ρ Π΅Ρ-ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ HMAC ΡΠ° Π·Π°ΠΌΠ΅Π½Π΅Π½ΠΈ Ρ Π²Π°ΡΠΈΠ°Π½ΡΠΈ, Π·Π° ΠΊΠΎΠΈΡΠΎ Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ΠΎ ΡΠΎΡΠΌΠ°Π»Π½ΠΎ Π΄ΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΡΡΠ²ΠΎ Π·Π° ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ (ΡΠΎΡΠΌΠ°Π»Π½Π° Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ). Π‘ΡΠ΅Π΄ ΠΎΡΡΠ°Π½Π°Π»ΠΎΡΠΎ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° HMAC-BLAKE2, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ° SIMD-ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ AVX2 Π·Π° ΡΡΠΊΠΎΡΡΠ²Π°Π½Π΅ Π½Π° ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡΡΠ°.
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ Π½ΠΎΠ² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄Π΅Π½ ΡΠ΅Π΄ ("python -m asyncio ps PID" ΠΈ "python -m asyncio pstree PID") Π·Π° ΠΈΠ½ΡΠΏΠ΅ΠΊΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ°ΡΡΠΈΡΠ°Π»ΠΈ Python ΠΏΡΠΎΡΠ΅ΡΠΈ Ρ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΈ Π·Π°Π΄Π°ΡΠΈ (asyncio).
- Π Π³ΠΎΡΠΎΠ²ΠΈΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ Π·Π° macOS ΠΈ Windows Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π΅Π½ JIT ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡ. ΠΠ½ΡΡΠ°Π»Π°ΡΠΎΡΡΡ Π·Π° Windows Π΅ Π·Π°ΠΌΠ΅Π½Π΅Π½ Ρ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ Π·Π° ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΠΈ.
- ΠΠ° Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π½Π° ΡΠ΅Π»ΠΎΡΡΡΠ° Π½Π° ΡΠ±ΠΎΡΠΊΠΈΡΠ΅ Π²ΠΌΠ΅ΡΡΠΎ PGP ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π΅ Π²Π½Π΅Π΄ΡΠ΅Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΡΠΊΠ° Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π½Π° ΠΊΠΎΠ΄Π° Sigstore.
- ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ΠΈ ΡΠ° ΠΎΡΠΈΡΠΈΠ°Π»Π½ΠΈ Π±ΠΈΠ½Π°ΡΠ½ΠΈ ΡΠ±ΠΎΡΠΊΠΈ Π·Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Android.
Π Π±Π»ΠΈΠ·ΠΊΠΈΡΠ΅ ΡΠ°ΡΠΎΠ²Π΅ ΡΠ΅ Π·Π°ΠΏΠΎΡΠ½Π΅ Π°Π»ΡΠ° ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° Π²Π΅ΡΡΠΈΡ Python 3.15, ΠΊΠΎΡΡΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ Π² Π΅ΡΠ°ΠΏ Π½Π° Π°Π»ΡΠ°-ΠΈΠ·Π΄Π°Π½ΠΈΡ Π² ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅Π΄Π΅ΠΌ ΠΌΠ΅ΡΠ΅ΡΠ°, ΠΏΡΠ΅Π· ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΡΡ Π½ΠΎΠ²ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΡΠ΅ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π°Ρ ΠΊΠΎΡΠ΅ΠΊΡΠΈΠΈ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ (Π² ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Ρ Π½ΠΎΠ²ΠΈΡ Π³ΡΠ°ΡΠΈΠΊ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°, ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π°Π΄ Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π·Π°ΠΏΠΎΡΠ²Π° ΠΏΠ΅Ρ ΠΌΠ΅ΡΠ΅ΡΠ° ΠΏΡΠ΅Π΄ΠΈ ΠΈΠ·Π»ΠΈΠ·Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠ΅Π΄ΠΈΡΠ½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ ΠΈ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π½Π° ΡΠ»Π΅Π΄Π²Π°ΡΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π΄ΠΎΡΡΠΈΠ³Π° Π΅ΡΠ°ΠΏ Π½Π° Π°Π»ΡΠ° ΡΠ΅ΡΡΠ²Π°Π½Π΅). Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Π² ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΡΡΠΈ ΠΌΠ΅ΡΠ΅ΡΠ° ΡΠ΅ ΡΠ΅ ΠΏΡΠΎΠ²Π΅Π΄Π΅ ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° Π±Π΅ΡΠ° Π²Π΅ΡΡΠΈΠΈ, ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΊΠΎΠ΅ΡΠΎ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ΡΠΎ Π½Π° Π½ΠΎΠ²ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ΅ Π±ΡΠ΄Π΅ Π·Π°Π±ΡΠ°Π½Π΅Π½ΠΎ ΠΈ ΡΡΠ»ΠΎΡΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ΅ ΡΠ΅ ΡΡΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈ Π²ΡΡΡ
Ρ ΠΊΠΎΡΠ΅ΠΊΡΠΈΠΈΡΠ΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ. ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π΄Π²Π° ΠΌΠ΅ΡΠ΅ΡΠ° ΠΏΡΠ΅Π΄ΠΈ ΠΈΠ·Π»ΠΈΠ·Π°Π½Π΅ΡΠΎ Π²Π΅ΡΡΠΈΡΡΠ° ΡΠ΅ Π±ΡΠ΄Π΅ Π½Π° Π΅ΡΠ°ΠΏ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ Π·Π° ΠΈΠ·Π»ΠΈΠ·Π°Π½Π΅, Π½Π° ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠΈ ΡΠΈΠ½Π°Π»Π½ΠΎ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠ°Π½Π΅.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
