在为我的API编写测试时,我发现了我不太了解的内容。
r
是来自API调用的响应。
为什么True
:
isinstance(r, requests.Response)
为什么这个False
:
isinstance(r.__class__, requests.models.Response)
给出
r.__class__ == requests.models.Response
答案 0 :(得分:2)
isinstance(r, requests.Response)
检查r
是Response
还是子类,很明显是它。
isinstance(r.__class__, requests.models.Response)
检查Response
是否为Response
,显然不是:Response
为type
。
第二张支票可能意味着issubclass(type(r), requests.model.Response)
。就个人而言,我更喜欢在这些情况下使用type
而不是__class__
,这主要是因为我出于非理性的恐惧,担心__class__
会以某种方式绑定到错误的东西或无法获取。