如何理解这一段Python代码
1个回答
展开全部
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()
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()
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询