这是一个例子
import wtforms
isinstance(wtforms.StringField, wtforms.Field)
为什么isinstance返回False? 如果wtforms.StringField是从wtforms.Field继承的,因为在这种情况下应返回isinstanse True。 为什么它返回False?如何解决这个问题?
答案 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
的子类。