我正在为datetime.date检查类型。我不知道在python中获得好的类型检查是否很麻烦,或者是否有我想要的东西:
In [14]: type(datetime.date)
Out[14]: type
In [15]: type(d)
Out[15]: datetime.date
In [16]: arbitrary = datetime.date(1990, 1, 1)
In [17]: type(arbitrary)
Out[17]: datetime.date
我喜欢比每次在__init__
内制作虚假日期更简单的事情
import datetime
class Month(object):
def __init__(self, dateobj):
if type(dateobj) == the type of datetime.date:
we're good
else:
raise Exception('Please feed me a dateobj')
检查这些类型的最快方法是什么,因为基类的类型通常会返回无用的type
。谢谢
答案 0 :(得分:6)
我使用isinstance
进行类型检查:
>>> import datetime
>>> isinstance('2016', datetime.datetime)
False
>>> today = datetime.datetime.now()
>>> isinstance(today, datetime.datetime)
True
答案 1 :(得分:3)
使用:
type(your_variable)
或者如果您知道它应该是datetime.date
:
isinstance(your_variable, datetime.date)
type
为您提供变量类型,isinstance
返回True
或False
。
例如:
>>> from datetime import date
>>> today = date.today()
>>> type(today)
<type 'datetime.date'>
>>> isinstance(today, datetime.date)
True