requests钩子中*args和**kwargs会传入哪些内容?
requests响应钩子中*args和**kwargs的传入内容
当你使用requests的response钩子时,do_something函数的*args和**kwargs默认不会传入任何额外参数——除非你在调用请求方法时主动通过hooks配置传递。
默认情况下,钩子函数只会接收到第一个参数:response对象。这是因为requests的钩子机制设计时,默认仅传递响应对象给钩子函数,没有额外的位置参数或关键字参数。
如果你需要给钩子传递额外参数,可以按以下方式配置:
import requests def do_something(response, *args, **kwargs): print(args) # 会打印('额外参数1', '额外参数2') print(kwargs) # 会打印{'key': '额外关键字参数'} url = "https://example.com/get/" # 通过元组和字典传递额外参数给钩子 resp = requests.get(url, hooks={'response': (do_something, ('额外参数1', '额外参数2'), {'key': '额外关键字参数'})})
总结:
- 默认调用场景下,
*args是空元组,**kwargs是空字典 - 只有当你在配置钩子时,显式传入额外的位置参数元组和关键字参数字典,
*args和**kwargs才会有对应的值
内容的提问来源于stack exchange,提问作者Sqr
相关产品推荐
相关产品推荐

