Давайте возьмем первый пример из Что нового в документации 3.8 :
if (n := len(a)) > 10:
print(f"List is too long ({n} elements, expected <= 10)")
"Нормальным" назначением является оператор , оно не может быть используется как часть выражений. Без оператора выражение-назначение («морж») приведенный выше пример должен выглядеть примерно так:
n = len(a)
if n > 10:
print(f"List is too long ({n} elements, expected <= 10)")
С помощью выражения-назначения можно объединить присваивание n
с условием.