ΠŸΡƒΡΠΊ Π½Π° програмния Π΅Π·ΠΈΠΊ Python 3.8

Π‘Π»Π΅Π΄ Π΅Π΄Π½Π° Π³ΠΎΠ΄ΠΈΠ½Π° ΠΈ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° прСдставСн Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π΅Π½ Ρ€Π΅Π»ΠΈΠ· Π½Π° Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ Python 3.8. ΠŸΠΎΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»Π½ΠΈ обновлСния Π·Π° вСрсия Python 3.8 сС ΠΏΠ»Π°Π½ΠΈΡ€Π° Ρ‰Π΅ сС ΠΈΠ·Π΄Π°Π²Π°Ρ‚ Π² ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° 18 мСсСца. ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΈΡ‚Π΅ уязвимости Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ отстранСни Π΄ΠΎ ΠΎΠΊΡ‚ΠΎΠΌΠ²Ρ€ΠΈ 2024 Π³ΠΎΠ΄ΠΈΠ½Π°. ΠŸΠΎΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»Π½ΠΈ обновлСния Π·Π° вСрсия 3.8 Ρ‰Π΅ ΠΈΠ·Π»ΠΈΠ·Π°Ρ‚ Π½Π° всСки Π΄Π²Π° мСсСца, ΠΊΠ°Ρ‚ΠΎ ΠΏΡŠΡ€Π²ΠΎΡ‚ΠΎ ΠΏΠΎΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Python 3.8.1 Π΅ ΠΏΠ»Π°Π½ΠΈΡ€Π°Π½ΠΎ Π·Π° Π΄Π΅ΠΊΠ΅ΠΌΠ²Ρ€ΠΈ.

Π‘Ρ€Π΅Π΄ Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈΡ‚Π΅ нововъвСдСния:

  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° присвояванС Π² слоТни ΠΈΠ·Ρ€Π°Π·ΠΈ. Π‘ новия ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Β«:=Β» стана възмоТно ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ присвояванС Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ ΠΈΠ·Ρ€Π°Π·ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π° Π΄Π° сС ΠΈΠ·Π±Π΅Π³Π½Π΅ Π΄Π²ΠΎΠΉΠ½ΠΎΡ‚ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² условни ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ ΠΈ ΠΏΡ€ΠΈ опрСдСлянС Π½Π° Ρ†ΠΈΠΊΠ»ΠΈ:

    if (n := len(a)) > 10:
    …

    while (block := f.read(256)) != Β»:
    …

  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½ΠΎΠ² синтаксис Π·Π° Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ Π½Π° функция. ΠŸΡ€ΠΈ изброяванС Π½Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΈ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½Π΅ Π½Π° функция сСга ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΡƒΠΊΠ°ΠΆΠ΅ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ Β«/Β», ΠΊΠΎΠΉΡ‚ΠΎ позволява Π΄Π° сС отдСлят Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅, Π½Π° ΠΊΠΎΠΈΡ‚ΠΎ стойности ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ присвоСни само Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° Ρ€Π΅Π΄Π° Π½Π° изброяванС Π½Π° стойноститС ΠΏΡ€ΠΈ ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° функцията, ΠΎΡ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅, допускащи присвояванС Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ Ρ€Π΅Π΄ (синтаксис Β«ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°=стойност»). ΠžΡ‚ практичСска страна Π½ΠΎΠ²Π°Ρ‚Π° функционалност позволява Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π² Python напълно Π΄Π° Π΅ΠΌΡƒΠ»ΠΈΡ€Π°Ρ‚ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° C, Π° ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π΄Π° сС ΠΈΠ·Π±Π΅Π³Π½Π°Ρ‚ ΠΏΡ€ΠΈΠ²ΡŠΡ€Π·Π°Π½ΠΎΡΡ‚ΠΈ към ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΈ ΠΈΠΌΠ΅Π½Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π°ΠΊΠΎ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€Π° Π΅ ΠΏΠ»Π°Π½ΠΈΡ€Π°Π½ΠΎ Π΄Π° бъдС ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½ΠΎ Π² Π±ΡŠΠ΄Π΅Ρ‰Π΅.

    Π€Π»Π°Π³ Β«/Β» допълва ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΎ добавСния ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ Β«*Β», отдСлящ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡ‚Π΅, Π·Π° ΠΊΠΎΠΈΡ‚ΠΎ Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΠΌΠΎ само присвояванСто Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Β«ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°=стойност». НапримСр, Π² функцията Β«def f(a, b, /, c, d, *, e, f):Β» ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡ‚Π΅ Β«aΒ» ΠΈ Β«bΒ» ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ присвоСни само Π² Ρ€Π΅Π΄Π° Π½Π° изброяванС Π½Π° стойноститС,
    ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡ‚Π΅ Β«eΒ» ΠΈ Β«fΒ», само Ρ‡Ρ€Π΅Π· присвояванС Β«ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°=стойност», Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡ‚Π΅ Β«cΒ» ΠΈ Β«dΒ» ΠΏΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ ΠΎΡ‚ ΡƒΠΊΠ°Π·Π°Π½ΠΈΡ‚Π΅ Π½Π°Ρ‡ΠΈΠ½ΠΈ:

    f(10, 20, 30, 40, e=50, f=60)
    f(10, 20, c=30, d=40, e=50, f=60)

  • Π”ΠΎΠ±Π°Π²Π΅Π½ Π½ΠΎΠ² C API
    Π·Π° настройка Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ Π·Π° инициализация Π½Π° Python, позволяващ напълно ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° всички конфигурация ΠΈ прСдоставящ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈ срСдства Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ. ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡΡ‚ API опростява Π²Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° функционалността Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° Python Π² Π΄Ρ€ΡƒΠ³ΠΈ прилоТСния Π½Π° C;
  • Π Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΎ Π½ΠΎΠ² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Vectorcall Π·Π° ΠΏΠΎ-Π±ΡŠΡ€Π· Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ, написани Π½Π° C. Π’ CPython 3.8 Π΄ΠΎΡΡ‚ΡŠΠΏΡŠΡ‚ Π΄ΠΎ Vectorcall Π΅ всС ΠΎΡ‰Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ Π΄ΠΎ Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°, Π° ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½Π΅Ρ‚ΠΎ Π² ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎ Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ API Π΅ ΠΏΠ»Π°Π½ΠΈΡ€Π°Π½ΠΎ Π² CPython 3.9;
  • Π”ΠΎΠ±Π°Π²Π΅Π½ΠΈ са Π²ΠΈΠΊΠ»ΠΈΡ†ΠΈ Π½Π° Runtime Audit Hooks, ΠΊΠΎΠΈΡ‚ΠΎ прСдоставят Π½Π° прилоТСнията ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€Ρ†ΠΈΡ‚Π΅ Π½Π° Python Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ нискоуровнСва информация Π·Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° скрипта, Π·Π° ΠΏΡ€ΠΎΠ²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΎΠ΄ΠΈΡ‚ Π½Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½ΠΈΡ‚Π΅ дСйствия (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠΆΠ΅ Π΄Π° сС прослСди ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, отварянСто Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° трасировка, повикванията Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ сокСти, ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠ΄ Ρ‡Ρ€Π΅Π· exec, eval ΠΈ run_mod);
  • Π’ ΠΌΠΎΠ΄ΡƒΠ»Π° pickle Π΅ осигурСна ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Pickle 5, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π·Π° сСриализация ΠΈ дСсСриализация Π½Π° ΠΎΠ±Π΅ΠΊΡ‚ΠΈ. Pickle позволява ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΎΠ±Π΅ΠΌΠΈ Π΄Π°Π½Π½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Python процСси Π² многопроцСсорни ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ·Π»ΠΎΠ²ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, намалявайки броя Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ ΠΏΠΎ ΠΊΠΎΠΏΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚ ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ Π·Π° оптимизация, ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ Π·Π° компрСсия, спСцифични Π·Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ Π΄Π°Π½Π½ΠΈ. ΠŸΠ΅Ρ‚Π° вСрсия Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Π΅ Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΡ‚Π΅Π»Π½Π° с добавянСто Π½Π° Ρ€Π΅ΠΆΠΈΠΌ Π½Π° ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ (out-of-band), ΠΏΡ€ΠΈ ΠΊΠΎΠΉΡ‚ΠΎ Π΄Π°Π½Π½ΠΈΡ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΏΡ€Π΅Π΄Π°Π²Π°Ρ‚ ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ ΠΎΡ‚ основния ΠΏΠΎΡ‚ΠΎΠΊ pickle.
  • По ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π΅ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½Π° Ρ‡Π΅Ρ‚Π²ΡŠΡ€Ρ‚Π°Ρ‚Π° вСрсия Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Pickle, която Π² сравнСниС с ΠΏΠΎ-Ρ€Π°Π½ΠΎ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π°Ρ‚Π° Ρ‚Ρ€Π΅Ρ‚Π° вСрсия осигурява ΠΏΠΎ-висока производитСлност ΠΈ намаляванС Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° ΠΏΡ€Π΅Π΄Π°Π²Π°Π½ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ;
  • Π’ ΠΌΠΎΠ΄ΡƒΠ»Π° typing прСдставСни са няколко Π½ΠΎΠ²ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ:
    • Клас TypedDict Π·Π° асоциативни масиви, Π² ΠΊΠΎΠΈΡ‚ΠΎ информацията Π·Π° Ρ‚ΠΈΠΏΠ° Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅Ρ‚Π΅, Π΅ явно Π·Π°Π΄Π°Π΄Π΅Π½Π° ("TypedDict('Point2D', x=int, y=int, label=str)").
    • Π’ΠΈΠΏ Literal, позволяващ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π°Π²Π°Π½Π΅ Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€Π° ΠΈΠ»ΠΈ Π²Ρ€ΡŠΡ‰Π°Π½Π°Ρ‚Π° стойност Π΄ΠΎ няколко ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ стойности ("Literal['connected', 'disconnected']").
    • ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡΡ‚Π° "Final" позволява Π΄Π° сС Π·Π°Π΄Π°Π²Π°Ρ‚ стойности Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ ΠΈ класовС, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ промСняни ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π½Π°Π·Π½Π°Ρ‡Π°Π²Π°Π½ΠΈ ("pi: Final[float] = 3.1415926536").
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° кСш Π·Π° скомпилирани Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ с Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄, ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Π½ΠΈ Π² ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎ Π΄ΡŠΡ€Π²ΠΎ, ΠΎΡ‚Π΄Π΅Π»Π΅Π½ΠΎ ΠΎΡ‚ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈΡ‚Π΅ с ΠΊΠΎΠ΄. ΠŸΡŠΡ‚ΡΡ‚ Π·Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ с Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄ сС Π·Π°Π΄Π°Π²Π° Ρ‡Ρ€Π΅Π· ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π° PYTHONPYCACHEPREFIX ΠΈΠ»ΠΈ опцията "-X pycache_prefix";
  • Π Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΎ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° създаванС Π½Π° ΠΎΡ‚Π»Π°Π΄ΡŠΡ‡Π½ΠΈ вСрсии Π½Π° Python, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π΅Π½ с вСрсията ABI, позволяващ Π² ΠΎΡ‚Π»Π°Π΄ΡŠΡ‡Π½ΠΈ вСрсии Π΄Π° сС Π·Π°Ρ€Π΅ΠΆΠ΄Π°Ρ‚ написани Π½Π° C Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ, ΡΡŠΠ±Ρ€Π°Π½ΠΈ Π·Π° стабилни вСрсии;
  • Π’ f-строкитС (Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€Π°Π½ΠΈ Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΈ с прСфикс β€˜f’) Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Β«=Β» (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Β«f'{expr=}'Β»), ΠΊΠΎΠΉΡ‚ΠΎ позволява ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΈΠ·Ρ€Π°Π· Π² тСкст Π·Π° улСсняванС Π½Π° отстраняванСто Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ. НапримСр:

    β€Ίβ€Ίβ€Ί user = β€˜eric_idle’
    β€Ίβ€Ίβ€Ί member_since = date(1975, 7, 31)
    β€Ίβ€Ίβ€Ί f'{user=} {member_since=}’
    Β«user=’eric_idle’ member_since=datetime.date(1975, 7, 31)Β»

  • Π˜Π·Ρ€Π°Π·ΡŠΡ‚ Β«continueΒ» Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ Π·Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π° Π² Π±Π»ΠΎΠΊΠ° finally;
  • Π”ΠΎΠ±Π°Π²Π΅Π½ Π΅ Π½ΠΎΠ² ΠΌΠΎΠ΄ΡƒΠ» multiprocessing.shared_memory, ΠΊΠΎΠ΅Ρ‚ΠΎ позволява ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° сСгмСнти ΠΎΡ‚ сподСлСна ΠΏΠ°ΠΌΠ΅Ρ‚ Π² многопроцСсорни ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ;
  • На ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Windows, Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° asyncio Π΅ прСнасочСно към ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° класа ProactorEventLoop;
  • ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° инструкцията LOAD_GLOBAL Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½Π° с ΠΎΠΊΠΎΠ»ΠΎ 40% Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° Π½ΠΎΠ² ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ Π·Π° ΠΊΠ΅ΡˆΠΈΡ€Π°Π½Π΅ Π½Π° обСктния ΠΊΠΎΠ΄.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster