def addError(self, e):
if not isinstance(e, Error):
raise ValueError('{0} is not type {0}'.format(e, Error))
self.__errors.append(e)
消息:
ValueError:<class 'api.utils.Error'>
不是类型<class 'api.utils.Error'>
答案 0 :(得分:10)
您传递的是类本身,而不是该类的实例。这解释了你的问题。
>>> class A:
pass
>>> isinstance(A, A)
False
你可能想要的是检查一个实例:
>>> isinstance(A(), A)
True
答案 1 :(得分:3)
e
是类api.utils.Error
,而不是类的实例。您可能想要构造一个实例。
此外,您的格式字符串有一个错误:
'{0} is not type {0}'
这忽略了format
的第二个参数,并将第一个参数用于两个占位符。你很可能意味着以下几点:
'{0} is not type {1}'
或在Python 2.7上,
'{} is not type {}'