我正在使用 requests 模块。我有许多程序想要对 requests.get(url)调用的结果进行复杂的检查。我想也许我可以在从 requests 的某些部分继承的类中添加这个新函数。但是 get 调用是在 api.py 文件中,该文件只包含静态函数定义,没有类声明。所以我无法弄清楚我的导入或子类定义应该是什么样的(“class Subclass(requests.api)”不起作用。)
我最终想到的是:
r = requests.get(url)
r.my_check()
是否有以类为导向的方法来完成此任务,或者我应该只在自己的单独模块中编写函数,并将其传递给 requests.get(url)调用的结果,完成吗?
答案 0 :(得分:0)
不是说这是一个好主意,但最终我认为你只是想动态地向Response对象添加一个方法?
import requests
from requests import Response
def my_method(self):
print(self.content)
Response.my_method = my_method
r = requests.get('https://www.google.com')
r.my_method()
<强>给出... 强>
b'<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="en"><head><me
答案 1 :(得分:-1)
您可以定义自己的功能并在运行时附加到requests
模块。
def my_get(self, *args, **kwargs):
original_get = self.get(args, kwargs)
# do what you want with the original_get, maybe change it according to your needs, then return the changed response.
return changed_get
requests.my_get = my_get
# now you can use both of them
requests.get(url) # regular get method
requests.my_get(url) # your own get method