在Python中bool(datetime)是否可以计算为False?

在Python中bool(datetime)是否可以计算为False?,python,python-3.x,python-3.8,Python,Python 3.x,Python 3.8,如果您有一个值:可选[X],检查它是否为None的常用方法是使用以下模式: 从输入导入可选 定义某些_函数(值:可选[str]): 如果不是值: 打印(“oopsie!值为None或空字符串”) 返回 ... # 现在您知道该值不是空的 此模式的陷阱是计算为False的其他值,例如: X==str:“” X==int:0 X==float:0.0。。。有趣的是,bool(float('nan')是真的 X==list:[](类似于集合、元组、dict或其他iterable) 我的问题是:

如果您有一个
值:可选[X]
,检查它是否为
None
的常用方法是使用以下模式:

从输入导入可选
定义某些_函数(值:可选[str]):
如果不是值:
打印(“oopsie!值为None或空字符串”)
返回
...  # 现在您知道该值不是空的
此模式的陷阱是计算为
False
的其他值,例如:

  • X==str
    “”
  • X==int
    0
  • X==float
    0.0
    。。。有趣的是,
    bool(float('nan')是真的
  • X==list
    []
    (类似于集合、元组、dict或其他iterable)

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

检查后,我们看到它没有覆盖
\uuuubool\uuu()
。因此,对于类型为
可选[datetime]
对象的变量,唯一的“false”值是
None

更准确地说,您列出的每个值的计算结果都是“false”,而不是
None
None
也是“falsy”。请参阅以获得解释。@Code学徒谢谢,这是一个打字错误。我在问题中修正了它:-)很好!谢谢你也为我指出了来源!我将在7分钟内(尽快:-)接受您已链接到Python实现的链接,但大部分内容将在接近尾声时被来自_datetimeimport*
覆盖。在大多数情况下,重要的实现是C实现。(虽然时间差可能是错误的。)@user2357112supportsMonica感谢到C源代码的链接。自从我找到Python代码以来,我没有考虑过。这些类也没有定义<代码>