Есть ли сокращение для возврата значения по умолчанию, если None в Python?
В С# я могу сказать x ?? "", который даст мне x, если x не является нулевым, а пустая строка, если x - null. Я нашел это полезным для работы с базами данных.
Есть ли способ вернуть значение по умолчанию, если Python находит None в переменной?
Ответ 1
Вы можете использовать оператор or:
return x or "default"
Обратите внимание, что это возвращает "default" также, если x - любое другое значение фальши, включая пустой список, 0, пустую строку или даже datetime.time(0) (полночь).
Ответ 2
return "default" if x is None else x
попробуйте приведенное выше.
Ответ 3
Вы можете использовать условное выражение :
x if x is not None else some_value
Пример:
In [22]: x = None
In [23]: print x if x is not None else "foo"
foo
In [24]: x = "bar"
In [25]: print x if x is not None else "foo"
bar
Ответ 4
x or "default"
работает лучше всего - я могу даже использовать вызов функции inline, не выполняя его дважды или используя дополнительную переменную:
self.lineEdit_path.setText( self.getDir(basepath) or basepath )
Я использую его при открытии Qt dialog.getExistingDirectory() и отмена, которая возвращает пустую строку.
Ответ 5
У вас есть тройной синтаксис x if x else '' - это то, что вы после?