Используйте оператор walrus при проверке значения

#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