如何理解这一段Python代码

 我来答
从空去听8
2017-11-22 · TA获得超过7439个赞
知道大有可为答主
回答量:6907
采纳率:93%
帮助的人:5571万
展开全部
with closing(requests.get(file_src,headers=headers,stream=True)) as response: with open(filename, 'wb') as fd: for chunk in response.iter_content(128):
fd.write(chunk)

个人只是理解为:
一种良好的文件管理,接收和自动关闭流,但是还是不理解代码的意思,希望大佬给个通俗易懂的解释~谢谢

你要理解上下文管理的原理是什么。
一个对象有 __enter__ 和 __exit__ 方法,使用 with 时,它将先调用对象的 __enter__ 方法,在退出时再调用 __exit__ 方法。具体的清理代码就在这两个魔术函数中。
有一些类型已经写好了上下文管理器,就可以直接用 with ,比如 file object,
但有一些类型不清楚该使用哪种方式关闭资源,所以设计一个 closing 函数来手动关闭。
当你退出 with 的时候,会运行该对象的 close 方法

from contextlib import contextmanager@contextmanagerdef closing(thing):
try: yield thing finally:
thing.close()
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式