我有两个对象,一个是datetime,另一个是date对象。当我想使用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
为什么datetime对象实例检查日期返回true?目前我正在使用type
来解决这个问题,但这不是一个解决方法吗
>>> type(a) == date
True
>>> type(a) == datetime
False
>>> type(b) == date
False
>>> type(b) == datetime
True
datetime
类是date
的一个子类Python库创建此继承关系,以便您可以在需要
date
的地方使用datetime
。其基本原理是datetime
对象包含一个日期。如果忽略时间或使用固定时间(如午夜),则将其用作date
对象是有意义的documentation提到了类层次结构:
没有解决方法,它按预期工作,因为
datetime
是date
的子类,而isinstance返回True
子类,如文档所述。我认为使用type()
是你在这里的唯一方法相关问题 更多 >
编程相关推荐