ππ½οΈ ΠΠΈΡΠΎΠ½ ΡΡΠ΅Π» GIL Π½Π° Π·Π°Π²ΡΡΠ°ΠΊ: ΡΡΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π² Π²Π΅ΡΡΠΈΠΈ 3.13
Π’Ρ ΡΠΈΠ΄ΠΈΡΡ? ΠΡΡΡΠ΅ ΡΡΠ΄Ρ. ΠΠ½ΠΈ ΡΠ΅Π°Π»ΡΠ½ΠΎ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΡΡΠΎ β JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ, ΡΠ»ΡΡΡΠ΅Π½Π½Π°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ, ΠΈ, ΡΡ Π½Π΅ ΠΏΠΎΠ²Π΅ΡΠΈΡΡ, GIL Π½Π°ΠΊΠΎΠ½Π΅Ρ-ΡΠΎ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π½Π° ΠΏΠ΅Π½ΡΠΈΡ!
Π Π²Π΅ΡΡΠΈΠΈ Python 3.13, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΡΠ»Π° 7 ΠΎΠΊΡΡΠ±ΡΡ 2024 Π³ΠΎΠ΄Π°, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π½ΠΎΠ²ΠΎΠ²Π²Π΅Π΄Π΅Π½ΠΈΠΉ β Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΎΠ½ΠΈ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Ρ Π½Π° ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ»ΡΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ·ΡΠΊΠ°. ΠΠ²ΡΠΎΡΡ Real Python ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°ΡΡΠΊΠ°Π·Π°Π»ΠΈ ΠΎΠ±ΠΎ Π²ΡΠ΅Ρ
Π½ΠΎΠ²ΡΡ
ΡΠΈΡΠ°Ρ
.
ΠΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ REPL
REPL ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎΡΡΡΠΎΡΠ½ΠΎΠ΅ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π±ΡΡΡΡΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΡΠ°Π½Π΅Π΅ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΡΠ΅Π»ΡΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π²ΡΡΠ°Π²ΠΊΡ ΠΊΠΎΠ΄Π° Ρ ΠΏΡΡΡΡΠΌΠΈ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ, ΡΠ΅Π³ΠΎ Π½Π΅ Π±ΡΠ»ΠΎ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ Π²Π΅ΡΡΠΈΡΡ . ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π½ΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ (exit ΠΈΠ»ΠΈ quit Π΄Π»Ρ Π²ΡΡ ΠΎΠ΄Π°, clear Π΄Π»Ρ ΠΎΡΠΈΡΡΠΊΠΈ ΡΠΊΡΠ°Π½Π°) ΠΈ Π³ΠΎΡΡΡΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΡΠΈ (F2 Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΠΈΡΡΠΎΡΠΈΠΈ, F3 Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° Π² ΡΠ΅ΠΆΠΈΠΌ Π²ΡΡΠ°Π²ΠΊΠΈ) ΠΈ Ρ. Π΄.
ΠΠΎΠ»Π΅Π΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ
Π’Π΅ΠΏΠ΅ΡΡ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈΠΌΠ΅ΡΡ ΡΠ²Π΅ΡΠΎΠ²ΡΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΊΡ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΈΡ Π±ΠΎΠ»Π΅Π΅ Π·Π°ΠΌΠ΅ΡΠ½ΡΠΌΠΈ ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΡΠΌΠΈ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ Π΄ΠΎΠΏΡΡΡΠΈΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΊΡ Π² ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»ΠΎΠ²Π°Ρ ΠΈΠ»ΠΈ ΠΈΠΌΠ΅Π½Π°Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΉ, Python ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ. Π£Π»ΡΡΡΠ΅Π½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ ΠΏΡΠΈ ΠΈΠΌΠΏΠΎΡΡΠ΅, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΅ΡΠ»ΠΈ ΡΠ°ΠΉΠ» Ρ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ ΠΈΠ»ΠΈ Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅. Python ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ΄ΡΠΊΠ°ΠΆΠ΅Ρ, ΡΡΠΎ ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ²Π°ΡΡ Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ:
ΠΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ JIT (Just-In-Time)
Π Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Python ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ JIT, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡΠΊΠΎΡΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π·Π° ΡΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π½Π° Π»Π΅ΡΡ β ΡΡΠΎ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π³ ΠΊ ΡΠ°Π΄ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠΌΡ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ·ΡΠΊΠ°.
Π£Π»ΡΡΡΠ΅Π½ΠΈΡ Π² ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ
ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΡΡΡ ΡΠ°Π±ΠΎΡΠ° Π½Π°Π΄ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΠΈΠΏΠΎΠ² Π² Python Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠΎΠ³ΠΎΠΉ ΠΈ ΡΠ΄ΠΎΠ±Π½ΠΎΠΉ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². Π‘ΡΠ΅Π΄ΠΈ ΡΠ°ΠΌΡΡ Π²Π°ΠΆΠ½ΡΡ Π½ΠΎΠ²ΡΠ΅ΡΡΠ²:
- PEP 696 β ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΠΈΠΏΠΎΠ². ΠΡΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ.
- PEP 742 β ΠΏΠΎΡΠ²ΠΈΠ»ΠΎΡΡ ΡΠ»ΡΡΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΡΠΆΠ΅Π½ΠΈΡ ΡΠΈΠΏΠΎΠ² ΡΠ΅ΡΠ΅Π· ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ TypeIs, ΡΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠΈΠΏΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°.
CLI-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΠΌΠΎΠ΄ΡΠ»Ρ random
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ python -m random Π΄Π»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π» ΠΈΠ»ΠΈ Π²ΡΠ±ΠΎΡΠ° ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².
ΠΠΎΠ²Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ copy.replace()
ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π½ΠΎΠ²Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ copy.replace() Π΄Π»Ρ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠΌΠΈ ΠΏΠΎΠ»ΡΠΌΠΈ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΠ²Π½ΠΎΠ³ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π²ΡΠ΅Ρ ΠΏΠΎΠ»Π΅ΠΉ.
Π£Π»ΡΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ Ρ glob-ΠΏΠ°ΡΡΠ΅ΡΠ½Π°ΠΌΠΈ
Python 3.13 ΡΠ»ΡΡΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ Ρ glob-ΠΏΠ°ΡΡΠ΅ΡΠ½Π°ΠΌΠΈ Π² ΠΌΠΎΠ΄ΡΠ»Π΅ pathlib:
- ΠΠ°ΡΡΠ΅ΡΠ½ ** ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ ΠΎΠ±Ρ ΠΎΠ΄ΠΈΡ Π²ΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΠΈ ΡΠ°ΠΉΠ»Ρ, ΠΊΠ°ΠΊ Π² ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ°Ρ :
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΡΠ½ΠΊΡΠΈΡ glob.translate() Π΄Π»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ glob-ΠΏΠ°ΡΡΠ΅ΡΠ½ΠΎΠ² Π² ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ:
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΎΡΡΡΡΠΏΠΎΠ² Π² docstrings
Python 3.13 ΡΠ΅ΠΏΠ΅ΡΡ Ρ ΡΠ°Π½ΠΈΡ docstrings Π±Π΅Π· Π»ΠΈΡΠ½ΠΈΡ ΠΎΡΡΡΡΠΏΠΎΠ², ΡΡΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΌΠ΅Π½ΡΡΠ°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ Π² Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ .
ΠΡΠ»ΠΈ Π±Ρ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΅ΡΡ ΠΎΠ΄Π½Ρ ΡΡΠ½ΠΊΡΠΈΡ Π² Python, ΡΡΠΎ Π±Ρ ΡΡΠΎ Π±ΡΠ»ΠΎ?
Python 3.13 ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π²ΡΡΠ΅Π», ΠΏΡΠΈΠ½Π΅ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΈΠ½Π½ΠΎΠ²Π°ΡΠΈΠΉ. Π₯ΠΎΡΠΈΡΠ΅ Π±ΡΡΡΡΠΎ ΠΎΡΠ²ΠΎΠΈΡΡ Π½ΠΎΠ²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈ ΡΠΊΡΠ΅ΠΏΠΈΡΡ ΡΠ²ΠΎΠΈ Π½Π°Π²ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ? ΠΡΡΡ Β«ΠΡΠ½ΠΎΠ²Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° PythonΒ» ΠΎΡ Proglib Academy ΡΠΆΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ ΠΈ Π³ΠΎΡΠΎΠ² ΠΏΠΎΠΌΠΎΡΡ Π²Π°ΠΌ Π² ΡΡΠΎΠΌ.