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__
может быть как-то связан с неправильной вещью или недоступен.