python – 添加数字时处理无

我想添加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 
上一篇:javascript – 如何关闭弹出窗口和重定向页面


下一篇:python – 我什么时候应该使用None vs False?