我正在麻烦检查datetime.date的类型。 我不知道在Python中获得良好的typecheck是否麻烦,或者是否缺少某些东西:

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 谢谢

===============>>#1 票数:6

我使用isinstance进行类型检查:

>>> import datetime
>>> isinstance('2016', datetime.datetime)
False
>>> today = datetime.datetime.now()
>>> isinstance(today, datetime.datetime)
True

===============>>#2 票数: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

  ask by codyc4321 translate from so

未解决问题?本站智能推荐: