当函数返回None或引发异常时,使用Python的默认值的方法是什么?

有什么更Python的方式做到这一点?

try:
    a = foo() or b
except AttributeError:
    a = b

我想将a设置为函数foo的返回,但是如果foo返回None或引发AttributeError异常,那么我希望将a设置为b.

解决方法:

正如Gennady Kandaurov指出的那样:您需要测试不是有效的foo()的“有效”返回值(如0,[],(),…):

try:
    a = foo() if foo() is not None else b
except AttributeError:
    a = b

根据foo的实现细节(无论是昂贵的还是有副作用的),您可能只想调用一次:

try:
    f = foo()
    a = f if f is not None else b
except AttributeError:
    a = b
上一篇:通过C#在Windows注册表中创建REG_NONE空值


下一篇:AttributeError: 'NoneType' object has no attribute 'append',列表list和dataframe使用ap