Выражения Python if-elif-else, возвращающие значение и разрешение области

#python

#python

Вопрос:

Вопрос 1

В rust я могу написать код, подобный этому:

 let foo = if ... {
  1
} else if ... {
  2
} else {
  3
};
  

Здесь foo присваивается возвращаемое значение этого выражения if-elseif-else.

Возможно ли что-то подобное в Python?

Вопрос 2

Обновлена ли внешняя переменная «foo» в этом коде python?

 foo = "hello"

if cond1:
   foo = "world"
else:
   pass

# if cond1 is true, what is the value of foo now? "hello" or "world"
  

Комментарии:

1. Использовать print(foo) ?

2. А как насчет Вопроса 1 ?

3. else: pass бесполезно — вы можете удалить его.

4. в python есть foo = 1 if ... else (2 if ... else 3) , но он менее читаем, чем обычно if/else

Ответ №1:

кажется, что ближайшая версия Py — это троичная операция

 #scenario 2

foo = "hello"

foo = "world" if True else foo

print(foo) # prints 'world'