def addError(self, e):
if not isinstance(e, Error):
raise ValueError('{0} is not type {0}'.format(e, Error))
self.__errors.append(e)
信息:
值错误: <class 'api.utils.Error'>
不是类型 <class 'api.utils.Error'>
def addError(self, e):
if not isinstance(e, Error):
raise ValueError('{0} is not type {0}'.format(e, Error))
self.__errors.append(e)
信息:
值错误: <class 'api.utils.Error'>
不是类型 <class 'api.utils.Error'>
你传递的是类本身,而不是类的实例。这解释了你的问题。
>>> class A:
pass
>>> isinstance(A, A)
False
您可能想要做的是检查一个实例:
>>> isinstance(A(), A)
True
e
是类api.utils.Error
,而不是类的实例。您可能需要构造一个实例。'{0} is not type {0}'
这个代码忽略了 format
的第二个参数,并且将第一个参数用于两个占位符。你可能想要使用以下代码:
'{0} is not type {1}'
或者在Python 2.7上,
'{} is not type {}'
isinstance(e, Error)
返回True
吗? - aIKid