new*_*bie 4 python datetime isinstance
我有 2 个对象,一个是日期时间,另一个是日期对象。当我想使用 isinstance (python 的首选方式)检查对象的类型时,我得到了一些荒谬的结果
>>> from datetime import date, datetime
>>> a=date.today()
>>> b=datetime.now()
>>> isinstance(a, date)
True
>>> isinstance(a, datetime)
False
>>> isinstance(b, date)
True # this should be False
>>> isinstance(b, datetime)
True
Run Code Online (Sandbox Code Playgroud)
为什么 datetime 对象实例检查 date 返回 true?目前我正在使用type来解决这个问题,但是没有解决方法吗?
>>> type(a) == date
True
>>> type(a) == datetime
False
>>> type(b) == date
False
>>> type(b) == datetime
True
Run Code Online (Sandbox Code Playgroud)
为什么 datetime 对象实例检查日期返回 true
没有解决方法,它按预期工作,因为datetimeis 的子类date和isinstance返回True子类,如文档所述。我认为使用type()是你在这里的唯一方法。
>>> from datetime import datetime, date
>>> datetime.__mro__
(datetime.datetime, datetime.date, object)
>>> issubclass(datetime, date)
True
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1375 次 |
| 最近记录: |