Најинтересните иновации:
- Израз на задача:
Новиот := оператор ви овозможува да доделите вредности на променливите во изразите. На пример:
ако (n := len(a)) > 10:
print(f"Списокот е премногу долг ({n} елементи, се очекува <= 10)") - Аргументи само за позиции:
Сега можете да одредите кои параметри на функцијата може да се пренесат низ именуваната синтакса на аргументи, а кои не. Пример:
def f(a, b, /, c, d, *, e, f):
печатење (a, b, c, d, e, f)f(10, 20, 30, d=40, e=50, f=60) # Во ред
f(10, b=20, c=30, d=40, e=50, f=60) # грешка, `b` не може да биде именуван аргумент
f(10, 20, 30, 40, 50, f=60) # грешка, `e` мора да биде именуван аргументОваа промена им дава на програмерите начин да ги заштитат корисниците на нивните API од промени во имињата на аргументите на функциите.
- Поддршка f-strings = за самодокументирање на изрази и дебагирање:
Додаден шеќер за да се поедностават пораките за отстранување грешки/логирање.
n = 42
печатење (f'Здраво светот {n=}.')
# ќе отпечати „Здраво свет n=42“. - Поправен е клучниот збор „продолжи“ во конечниот блок (не работеше порано).
Друго:
- Можете експлицитно да ја наведете патеката до кешот на бајтекод наместо стандардната __pycache__.
- Изградбите за отстранување грешки и издавање го користат истото ABI.
Извор: linux.org.ru