检查特定python模块的实例

时间:2018-10-29 19:59:12

标签: python request

在为我的API编写测试时,我发现了我不太了解的内容。

r是来自API调用的响应。

为什么True

isinstance(r, requests.Response)

为什么这个False

isinstance(r.__class__, requests.models.Response)

给出

r.__class__ == requests.models.Response

1 个答案:

答案 0 :(得分:2)

isinstance(r, requests.Response)检查rResponse还是子类,很明显是它。

isinstance(r.__class__, requests.models.Response)检查Response是否为Response,显然不是:Responsetype

第二张支票可能意味着issubclass(type(r), requests.model.Response)。就个人而言,我更喜欢在这些情况下使用type而不是__class__,这主要是因为我出于非理性的恐惧,担心__class__会以某种方式绑定到错误的东西或无法获取。