gpt4 book ai didi

Python 请求 : Hook or no Hook?

转载 作者:太空狗 更新时间:2023-10-30 00:56:32 27 4
gpt4 key购买 nike

我“.get”一个请求并像这样处理响应:

resp = requests.get('url')
resp = resp.text
.. # do stuff with resp

阅读包的文档后,我看到有一个钩子(Hook)功能允许我这样做:

def process_r(resp, **kwargs): .. do stuff with resp

resp = requests.get('url', hooks = {'response': process_r})

我的问题:

什么时候应该使用钩子(Hook)?或者,我为什么要使用钩子(Hook)?

我希望在使用请求 resp.text 过程返回请求的响应后启动一个对象(解析器)。

对于这种情况,什么是 Pythonic 的正确方法?

谢谢

最佳答案

钩子(Hook)距离“魔术”不到一百万英里。它们的作用是使您的代码可能做出让其他人感到惊讶的事情(从而违反“显式优于隐式”)。

因此, Hook 实际上应该仅用于驱动使事情更多可预测的行为,而不是更少。例如,Requests 在内部使用它们来 handle 401 responses用于各种身份验证。

因此,您应该遵循钩子(Hook)的限制。 relevant part of the documentation声明钩子(Hook)需要返回一个 Response 对象。这会导致一些明显的可能行为:您可以发出额外的请求(如上面的 401 Hook ),或者您可以以某种方式改变 Response

启动一个解析器正是那种你不应该用钩子(Hook)做的事情。它应该是您业务逻辑的一部分。我会改为编写一个效用函数。

关于Python 请求 : Hook or no Hook?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17773028/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com