我的代码看起来像这样:
import requests
s = requests.Session()
r = s.get(a, verify=False)
r = s.get(b, verify=False)
r = s.get(c, verify=False)
r = s.get(d, verify=False)
r = s.get(e, verify=False)
r = s.get(f, verify=False)
r = s.get(g, headers={"a":"b"}, verify=False)
r = s.post(h, data={"a","b"},verify=False)
我怎样才能避免必须一直显式地编写 verify=False
?
最佳答案
在 python 请求的情况下,您可以通过执行以下操作使 SSL 验证标志在该 session 的生命周期内持续存在
s.verify = False
更一般地说,当函数接受 named=value
类型参数时,首先要做的是检查方法签名,看看默认值是否可能是您想要的。如果不是,下一步就是查看值是否像上面那样持久化(python requests 允许这样做)。
第三个选项是创建一个简单的包装器,为所有参数传递合适的值
def my_get(s, url):
s.get(url, verify=False)
称为
my_get(s, url)
或者您可以变得雄心勃勃并且monkey patch来自图书馆的类(class)。但猴子修补有时会导致意想不到的副作用,因此除非万不得已,否则最好避免使用。
引用资料:
the documentation for the verify
attribute of the Session
class .
Using Optional and named arguments.
关于python - 避免必须显式包含函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44050692/