Лучший способ сделать это - воспользоваться предложением @CharlieWindolf, которое должно использовать:
x = func1() or 1
Проблема в том, что требуется func1()
для возврата значения, которое python рассматривает каклогическое.
Чтобы исправить это, вам нужно использовать две строки.
y = func1()
x = 1 if y is None else y
В Python3.8 это может быть возможно с помощью выражения присваивания , но я не проверял егопока.
x = 1 if (y := func1()) is None else y