ИздаванС Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Π½ Π΅Π·ΠΈΠΊ Python 3.8

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

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

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

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

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

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

    Π—Π½Π°ΠΊΡŠΡ‚ Β«/Β» допълва ΠΏΡ€Π΅Π΄ΠΈ Ρ‚ΠΎΠ²Π° добавСния Π·Π½Π°ΠΊ Β«*Β», ΠΊΠΎΠΉΡ‚ΠΎ отдСля ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡ‚Π΅, Π·Π° ΠΊΠΎΠΈΡ‚ΠΎ Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΠΌΠΎ само присвояванС Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° «пСрСмСнная=Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Β». НапримСр, Π² функцията Β«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)Β»

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

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

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