编程语言
首页 > 编程语言> > 当函数返回None或引发异常时,使用Python的默认值的方法是什么?

当函数返回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

标签:nonetype,exception-handling,default-value,python
来源: https://codeday.me/bug/20191026/1936382.html