在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代码以来,我没有考虑过。这些类也没有定义<代码>