Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何检查变量是datetime.datetime还是datetime.date的实例_Python_Datetime - Fatal编程技术网

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