🐍🍽️ ΠŸΠΈΡ‚ΠΎΠ½ съСл GIL Π½Π° Π·Π°Π²Ρ‚Ρ€Π°ΠΊ: Ρ‡Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π² вСрсии 3.13

🐍🍽️ ΠŸΠΈΡ‚ΠΎΠ½ съСл GIL Π½Π° Π·Π°Π²Ρ‚Ρ€Π°ΠΊ: Ρ‡Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π² вСрсии 3.13

Π’Ρ‹ сидишь? Π›ΡƒΡ‡ΡˆΠ΅ сядь. Они Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ сдСлали это – JIT-компилятор, ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Π°Ρ типизация, ΠΈ, Ρ‚Ρ‹ Π½Π΅ ΠΏΠΎΠ²Π΅Ρ€ΠΈΡˆΡŒ, GIL Π½Π°ΠΊΠΎΠ½Π΅Ρ†-Ρ‚ΠΎ отправляСтся Π½Π° пСнсию!
Π’ вСрсии Python 3.13, которая Π²Ρ‹ΡˆΠ»Π° 7 октября 2024 Π³ΠΎΠ΄Π°, прСдставлСно мноТСство Π½ΠΎΠ²ΠΎΠ²Π²Π΅Π΄Π΅Π½ΠΈΠΉ – Π² основном ΠΎΠ½ΠΈ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π½Π° ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ удобства использования ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ языка. Авторы Real Python ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассказали ΠΎΠ±ΠΎ всСх Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΠΈΡ‡Π°Ρ….

Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ REPL

REPL Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ многострочноС Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ быстрого Π²Ρ‹Π·ΠΎΠ²Π° Ρ€Π°Π½Π΅Π΅ написанного ΠΊΠΎΠ΄Π° Ρ†Π΅Π»Ρ‹ΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ вставку ΠΊΠΎΠ΄Π° с пустыми строками, Ρ‡Π΅Π³ΠΎ Π½Π΅ Π±Ρ‹Π»ΠΎ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… вСрсиях. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (exit ΠΈΠ»ΠΈ quit для Π²Ρ‹Ρ…ΠΎΠ΄Π°, clear для очистки экрана) ΠΈ горячиС клавиши (F2 для Π²Ρ‹Π²ΠΎΠ΄Π° истории, F3 для ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π² Ρ€Π΅ΠΆΠΈΠΌ вставки) ΠΈ Ρ‚. Π΄.

Π‘ΠΎΠ»Π΅Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ сообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…

Π’Π΅ΠΏΠ΅Ρ€ΡŒ трассировки ошибок ΠΈΠΌΠ΅ΡŽΡ‚ Ρ†Π²Π΅Ρ‚ΠΎΠ²ΡƒΡŽ подсвСтку, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈΡ… Π±ΠΎΠ»Π΅Π΅ Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹ΠΌΠΈ ΠΈ понятными. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ссли Π²Ρ‹ допуститС ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΡƒ Π² ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… словах ΠΈΠ»ΠΈ ΠΈΠΌΠ΅Π½Π°Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Python ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ исправлСния. Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΎ сообщСниС ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅, особСнно Ссли Ρ„Π°ΠΉΠ» с Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡƒΠΆΠ΅ сущСствуСт Π² стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ ΠΈΠ»ΠΈ Π² вашСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅. Python Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ подскаТСт, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ²Π°Ρ‚ΡŒ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ:

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ глобальной Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° (GIL)
ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ΡΡ Ρ€Π°Π±ΠΎΡ‚Π° Π½Π°Π΄ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ GIL – это ваТнСйший шаг Π½Π° ΠΏΡƒΡ‚ΠΈ ΠΊ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΌΡƒ ΠŸΠΈΡ‚ΠΎΠ½Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ смоТСт ΠΏΡ€Π΅ΠΎΠ΄ΠΎΠ»Π΅Ρ‚ΡŒ всС Π½Ρ‹Π½Π΅ΡˆΠ½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ языка.
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ глобальной Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° (GIL) ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ΡΡ Ρ€Π°Π±ΠΎΡ‚Π° Π½Π°Π΄ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ GIL – это ваТнСйший шаг Π½Π° ΠΏΡƒΡ‚ΠΈ ΠΊ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΌΡƒ ΠŸΠΈΡ‚ΠΎΠ½Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ смоТСт ΠΏΡ€Π΅ΠΎΠ΄ΠΎΠ»Π΅Ρ‚ΡŒ всС Π½Ρ‹Π½Π΅ΡˆΠ½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ языка.
🐍🍽️ ΠŸΠΈΡ‚ΠΎΠ½ съСл GIL Π½Π° Π·Π°Π²Ρ‚Ρ€Π°ΠΊ: Ρ‡Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π² вСрсии 3.13

Π­ΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ компилятор JIT (Just-In-Time)

Π’ Π½ΠΎΠ²ΠΎΠΉ вСрсии Python прСдставлСн ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ компилятор JIT, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π·Π° счСт компиляции Π½Π° Π»Π΅Ρ‚Ρƒ – это Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ шаг ΠΊ Ρ€Π°Π΄ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ языка.

JIT ΡƒΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ нСбольшой прирост ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ
JIT ΡƒΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ нСбольшой прирост ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ

Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π² статичСской Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ΡΡ Ρ€Π°Π±ΠΎΡ‚Π° Π½Π°Π΄ систСмой статичСской Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Ρ‚ΠΈΠΏΠΎΠ² Π² Python Π±ΠΎΠ»Π΅Π΅ строгой ΠΈ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Π‘Ρ€Π΅Π΄ΠΈ самых Π²Π°ΠΆΠ½Ρ‹Ρ… Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π²:

  • PEP 696 – Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ‚ΠΈΠΏΠΎΠ². Π­Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ.
  • PEP 742 – появилось ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ для суТСния Ρ‚ΠΈΠΏΠΎΠ² Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ TypeIs, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Ρ‚ΠΈΠΏΡ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π²ΠΎ врСмя выполнСния ΠΊΠΎΠ΄Π°.
🐍🍽️ ΠŸΠΈΡ‚ΠΎΠ½ съСл GIL Π½Π° Π·Π°Π²Ρ‚Ρ€Π°ΠΊ: Ρ‡Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π² вСрсии 3.13

CLI-интСрфСйс для модуля random

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ python -m random для быстрого получСния случайных чисСл ΠΈΠ»ΠΈ Π²Ρ‹Π±ΠΎΡ€Π° ΠΈΠ· списка элСмСнтов.

Новая функция copy.replace()

Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° новая функция copy.replace() для ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ нСизмСняСмых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Она позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ вСрсии нСизмСняСмых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² с ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΌΠΈ полями Π±Π΅Π· нСобходимости явного указания всСх ΠΏΠΎΠ»Π΅ΠΉ.

Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с glob-ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π°ΠΌΠΈ

Python 3.13 ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с glob-ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π°ΠΌΠΈ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ pathlib:

  • ΠŸΠ°Ρ‚Ρ‚Π΅Ρ€Π½ ** Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ рСкурсивно ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΡ‚ всС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΈ Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠ°ΠΊ Π² Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°Ρ…:
🐍🍽️ ΠŸΠΈΡ‚ΠΎΠ½ съСл GIL Π½Π° Π·Π°Π²Ρ‚Ρ€Π°ΠΊ: Ρ‡Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π² вСрсии 3.13
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° функция glob.translate() для прСобразования glob-ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ² Π² рСгулярныС выраТСния:
🐍🍽️ ΠŸΠΈΡ‚ΠΎΠ½ съСл GIL Π½Π° Π·Π°Π²Ρ‚Ρ€Π°ΠΊ: Ρ‡Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π² вСрсии 3.13

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ отступов Π² docstrings

Python 3.13 Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ…Ρ€Π°Π½ΠΈΡ‚ docstrings Π±Π΅Π· Π»ΠΈΡˆΠ½ΠΈΡ… отступов, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ использованиС памяти Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ….

Если Π±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π² Python, Ρ‡Ρ‚ΠΎ Π±Ρ‹ это Π±Ρ‹Π»ΠΎ?

Python 3.13 Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ Π²Ρ‹ΡˆΠ΅Π», принСся мноТСство ΠΈΠ½Π½ΠΎΠ²Π°Ρ†ΠΈΠΉ. Π₯ΠΎΡ‚ΠΈΡ‚Π΅ быстро ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ возмоТности ΠΈ ΡƒΠΊΡ€Π΅ΠΏΠΈΡ‚ΡŒ свои Π½Π°Π²Ρ‹ΠΊΠΈ программирования? ΠšΡƒΡ€Ρ Β«ΠžΡΠ½ΠΎΠ²Ρ‹ программирования Π½Π° PythonΒ» ΠΎΡ‚ Proglib Academy ΡƒΠΆΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ ΠΈ Π³ΠΎΡ‚ΠΎΠ² ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ Π² этом.

ΠΠ°Ρ‡Π°Ρ‚ΡŒ Π΄ΠΈΡΠΊΡƒΡΡΠΈΡŽ