检查无,假,真

Zid*_*Zid 2 python python-2.7

是否有更多的Pythonic方法来实现此逻辑:

res = func()

if res is not None:         # res is either True, False, something else
    if res is True:                 
        #do something       # res is True
    elif res is False:                   
        #do something else  # res is False
    else:
        #do something else2 # res is not in [True,False]
else:                       
    #failed                 # res is None
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 6

不,你已经覆盖了它.

通常,不要使用is Trueis False,如果必须具有三态布尔值,请使用:

if res is None:
    # handle None case
elif res:
    # handle true case
else:
    # handle false case
Run Code Online (Sandbox Code Playgroud)

例如,让开发人员负担正确地使用三态.

如果函数需要传达更多状态,则不应使用布尔值; 在这种情况下切换到使用枚举值.