当类是相同的时,isinstance返回false?

sli*_*lik 7 python

def addError(self, e):
    if not isinstance(e, Error):
        raise ValueError('{0} is not type {0}'.format(e, Error))
    self.__errors.append(e)
Run Code Online (Sandbox Code Playgroud)

信息:

ValueError:<class 'api.utils.Error'>不是类型<class 'api.utils.Error'>

aIK*_*Kid 10

你正在传递类本身,而不是类的实例.这解释了你的问题.

>>> class A:
    pass

>>> isinstance(A, A)
False
Run Code Online (Sandbox Code Playgroud)

你可能想要的是检查一个实例:

>>> isinstance(A(), A)
True
Run Code Online (Sandbox Code Playgroud)