lambda: 1 if False else lambda: 2
Позвольте мне написать это как обычную функцию с операторами if:
def func():
if False:
return 1
else:
return (lambda: 2)
Теперь, если я это сделаю:
x = func()
x
будет lambda: 2
- что является еще одной функцией.
Итак, как мне добраться до 2
?
x()
Это дает:
2
Теперь, если я включу переменную x
:
res = func()()
Теперь res
будет 2
Надеюсь, это было понятно. Вот почему два ()
было необходимо.
Возможно, вы хотели что-то вроде этого:
(lambda: 1) if False else (lambda: 2)
Это обычные функции, возвращающие оператор if.