Python 如何检查变量是datetime.datetime还是datetime.date的实例
我试过了Python 如何检查变量是datetime.datetime还是datetime.date的实例,python,datetime,Python,Datetime,我试过了 In [16]: import datetime In [17]: now = datetime.datetime.utcnow() In [18]: isinstance(now, datetime.date) Out[18]: True In [19]: isinstance(now, datetime.datetime) Out[19]: True 我所期望的是第一个isinstance应该返回False。发生了什么事?由于datetime继承自date,因此dateti
In [16]: import datetime
In [17]: now = datetime.datetime.utcnow()
In [18]: isinstance(now, datetime.date)
Out[18]: True
In [19]: isinstance(now, datetime.datetime)
Out[19]: True
我所期望的是第一个isinstance应该返回False。发生了什么事?由于
datetime
继承自date
,因此datetime
的每个实例也都是date
的实例,也就是说,您可以在任何使用date
实例的地方使用datetime
实例。这是面向对象编程中的一个关键问题
要修改检查以执行所需操作,可以使用类型(现在)为datetime.date
专门测试日期。或者,您可以使用isinstance(现在,datetime.date)而不是isinstance(现在,datetime.datetime)
显式排除datetime