Оператор walrus (:=), введённый в Python 3.8, официально называется оператором присваивания в выражении. Он позволяет присвоить значение переменной и одновременно использовать это значение в том же выражении, что уменьшает количество дублирующегося кода.
variable := expression
Оператор присваивает результат expression переменной variable и одновременно возвращает это значение для использования в окружающем выражении.
Без оператора walrus часто нужно присвоить и проверить значение в отдельных шагах:
n = len(data)
if n > 10:
print(f"List is too long: {n} elements")
С помощью := это становится единым лаконичным выражением:
if (n := len(data)) > 10:
print(f"List is too long: {n} elements")
n получает значение результата len(data)> 10n остаётся доступна внутри блокаwhile — читай и обрабатывай данные без дублирования вызова чтенияВсегда оборачивай выражение присваивания в скобки при использовании внутри условий или более крупных выражений. Это требуется синтаксисом Python и к тому же улучшает читаемость.
Оператор морж := был введен в Python 3.8 и позволяет одновременно присваивать значение переменной и вычислять её в рамках одного выражения.
Новый — ещё не проверен сообществом
Вы