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
的其他值,例如:
X == str
: ""
X == int
: 0
X == float
:0.0
... 有趣的是,bool(float('nan')) is True
X == list
: []
(类似于集合、元组、字典或其他可迭代对象)
我的问题是:任何 datetime.datetime
对象的计算结果是否为 False
?任何 datetime.time
/ datetime.date
?
检查 the source code for datetime
,我们发现它没有覆盖 __bool__()
。因此,类型为 Optional[datetime]
对象的变量的唯一“假”值是 None
.
如果您有 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
的其他值,例如:
X == str
:""
X == int
:0
X == float
:0.0
... 有趣的是,bool(float('nan')) is True
X == list
:[]
(类似于集合、元组、字典或其他可迭代对象)
我的问题是:任何 datetime.datetime
对象的计算结果是否为 False
?任何 datetime.time
/ datetime.date
?
检查 the source code for datetime
,我们发现它没有覆盖 __bool__()
。因此,类型为 Optional[datetime]
对象的变量的唯一“假”值是 None
.