python中是否有内置函数执行以下操作:
def none_safe(int_value):
return int_value if int_value is not None else 0
答案 0 :(得分:3)
假设唯一可能的输入是None
和int
的实例:
int_value or 0
某些APIS(例如dict.get
)有一个参数可以传递默认值。在这种情况下,它只是一个值,但请注意or
被懒惰地评估,而函数参数必须急切地评估。
其他API(例如collections.defaultdict
的构造函数)使用 factory 构建默认值,即您必须传递lambda: 0
(或仅int
因为这也是一个返回0
)的可调用,这避免了这个问题的急切性,以及其他虚假元素的可能性。
答案 1 :(得分:0)
更安全(通常)只是为任何不能成为int
def none_safe(int_value):
try:
return int(int_value)
except (TypeError, ValueError):
return 0
根据您的具体要求,其他变体可能会使用isinstance
或类似