我想添加2个整数,也可以是None,结果如下:
add(None, None) = None
add(None, b) = b
add(a, None) = a
add(a, b) = a + b
什么是最诡异,最简洁的表达方式?
到目前为止,我有:
def add1(a, b):
if a is None:
return b
elif b is None:
return a
else:
return a + b
要么
def add2(a, b):
try:
return a + b
except TypeError:
return a if a is not None else b
有没有更短的方法来实现它?
解决方法:
这相当紧凑,可以处理不同数量的术语:
def None_sum(*args):
args = [a for a in args if not a is None]
return sum(args) if args else None