Wtforms isinstance无法正常工作

时间:2015-07-18 22:27:22

标签: python wtforms

这是一个例子

import wtforms

isinstance(wtforms.StringField, wtforms.Field)

为什么isinstance返回False? 如果wtforms.StringField是从wtforms.Field继承的,因为在这种情况下应返回isinstanse True。 为什么它返回False?如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

isinstance检查 object 类类型的实例。在您的情况下,wtforms.StringField是一个类类型(它可以像一个对象,因为Python有first-class everything),并且类型为type。实际上你需要issubclass

即:

>>> isinstance(OrderedDict(), dict)
True
>>> isinstance(OrderedDict, dict)
False
>>> isinstance(OrderedDict, type)
True
>>> issubclass(OrderedDict, dict)
True

OrderedDict源自dict。因此,OrderedDict() 的对象是 dict的实例,而OrderedDict dict的子类。