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