#python-3.8 #walrus-operator
#python-3.8 #walrus-operator
Вопрос:
Как я могу проверить, равна ли переменная чему-либо, и установить новую переменную в дочерней области видимости?
Например:
bar = 'foobar'
my_slice = bar[:3]
if my_slice == 'foo':
print(my_slice)
Похоже, что новый оператор walrus здесь был бы полезен, но не сразу понятно, как вы собираетесь его использовать здесь
Ответ №1:
Операторы Walrus работают здесь очень хорошо, нам просто нужно точно понимать, как они работают.
if (my_slice := bar[3:]) == 'foo':
print(my_slice)
Операторы Walrus устанавливают переменную для вывода некоторого выражения. Он почти идентичен функции со знаком равенства в, за исключением того, что его можно использовать встроенным.
Итак, это выражение:
(my_slice := bar[3:]) == 'foo'
Может быть сведен к (variable = expression) == value
Таким образом, поскольку выходные данные my_slice := bar[:3]
равны bar[:3]
, приведенное выше эквивалентно
bar[3:] == 'foo'
Примечание: Скобки здесь обязательны, иначе variable
результат операции сравнения будет равен, т.е. True или False