[英]isinstance returning false when class is the same?
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'>
你正在傳遞類本身 ,而不是類的實例。 這解釋了你的問題。
>>> 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 {}'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.