我试过了
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 实例。这是 central concept在面向对象编程中。
要修改检查以执行您想要的操作,您可以使用 type(now) is datetime.date 专门针对 date 进行测试。或者,您可以使用 isinstance(now, datetime.date) 而不是 isinstance(now, datetime.datetime) 明确排除 datetime。
