什么是检查类型(datetime.date)python的最快方法

时间:2016-02-09 16:06:41

标签: python python-3.x datetime

我正在为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。谢谢

2 个答案:

答案 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返回TrueFalse。 例如:

>>> from datetime import date
>>> today = date.today()
>>> type(today)
<type 'datetime.date'>
>>> isinstance(today, datetime.date)
True