Один способ переписать ...
if x is not None
a = x
else
a = y
.. есть:
x = myfunction()
if x is None:
x = y
print x
Или, используя исключения (возможно, больше Python'y, в зависимости от того, что делает код - если он возвращает None из-за ошибки, вероятно, использование исключения - правильный путь):
try:
x = myfunction()
except AnException:
x = "fallback"
print x
Все, что сказано, на самом деле нет ничего плохого в том, что вы оригинальный код:
if x is not None
a = x
else
a = y
Это долго, но я нахожу, что гораздо легче читать (и гораздо больше Pythonic), чем любой из следующих однострочников:
a = x if x is not None else y
a = x or y