【发布时间】:2018-08-23 03:05:46
【问题描述】:
我想使用一个对象作为上下文管理器,但要控制调用__exit__ 方法的时间。
特别是,我正在使用 Python requests 模块提供的Session() 对象,它可以用作上下文管理器。我通过简单地使用例如来理解这一点。 requests.get() 每次都会创建和销毁一个新的 Session() 对象,而持久化会话应该提供更短的响应时间并为会话中的所有请求保留标头等。我想用Session() 发出x 请求,然后关闭会话并用新的Session() 对象发出y 请求,依此类推,直到我的代码完成运行。但是,由于我在代码中对Session().get() 进行了各种调用,因此我不想将其全部包含在with 块中。我有哪些选择?
对于更有经验的 Python 程序员来说,这可能是一个简单的问题,但我发现自己陷入了弄清楚如何组织我的代码的困境。关于如何实施的任何想法?如果需要,很乐意提供任何澄清。谢谢。
【问题讨论】:
标签: python session python-requests contextmanager