Python isinstance()返回datetime.date错误

时间:2011-04-14 15:26:18

标签: python

我正在尝试编译an old 2008 code

import datetime

if isinstance(value, datetime.date):

但我收到了一个错误:

  

isinstance()arg 2必须是一个类,   类和类的类型或元组   Python可执行文件:/usr/bin/python2.6   Python版本:2.6.5

我错过了什么?

3 个答案:

答案 0 :(得分:15)

我怀疑您导入了错误的日期时间,如:

from datetime import datetime

改为使用:

import datetime

答案 1 :(得分:6)

我正在运行Python 2.7,偶尔也会遇到此错误。如果您不需要严格的实例检查,通常只需检查类型就足够了。

if id(type) and type(value) in (datetime.datetime, datetime.date):
   #somecode

答案 2 :(得分:3)

为进一步说明这一点,如果datetime是指import datetime的模块或datetime的{​​{1}}类,因为它们都具有{{1 }}属性。

在第一种情况下,from datetime import datetime是指可以与date一起使用的日期类:

datetime.date

在第二种情况下,isinstance指的是datetime类的date方法,该方法不能与import datetime type(datetime.date) Out[13]: type 一起使用,因此错误。

datetime.date

为避免此类错误,最好使用isinstance明确导入和使用date类,然后使用from datetime import datetime type(datetime.date) Out[15]: method_descriptor