bool(datetime) 可以在 Python 中评估为 False 吗?

Can bool(datetime) evaluate to False in Python?

如果您有 value: Optional[X],检查它是否为 None 的常用方法是使用模式:

from typing import Optional

def some_function(value: Optional[str]):
    if not value:
        print("oopsie! value is either None or the empty string")
        return
    ...  # now you know that value is not empty

此模式的陷阱是计算结果为 False 的其他值,例如:

我的问题是:任何 datetime.datetime 对象的计算结果是否为 False?任何 datetime.time / datetime.date?

检查 the source code for datetime,我们发现它没有覆盖 __bool__()。因此,类型为 Optional[datetime] 对象的变量的唯一“假”值是 None.