首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >python关键字"with“是用来做什么的?

python关键字"with“是用来做什么的?
EN

Stack Overflow用户
提问于 2009-09-03 02:57:51
回答 2查看 531.2K关注 0票数 625

python关键字"with“是用来做什么的?

示例来自:http://docs.python.org/tutorial/inputoutput.html

>>> with open('/tmp/workfile', 'r') as f:
...     read_data = f.read()
>>> f.closed
True
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-09-02 19:05:11

在python中,在处理非托管资源(如文件流)时使用with关键字。它类似于VB.NET和C#中的using语句。它允许您确保在使用资源的代码完成运行时“清理”该资源,即使抛出异常也是如此。它为try/finally块提供了“语法糖”。

来自Python Docs

with语句澄清了以前使用try...finally块来确保执行清理代码的代码。在本节中,我将讨论该语句,因为它将经常使用。在下一节中,我将研究实现细节,并展示如何编写与此语句一起使用的对象。

with语句是一个控制流结构,其基本结构为:

将表达式作为变量: with-block

表达式被求值,并且它应该产生一个支持上下文管理协议的对象(即,具有__enter__()__exit__()方法)。

根据Scott Wisniewski的评论更新修复了VB标注。我确实把withusing搞混了。

票数 569
EN

Stack Overflow用户

发布于 2012-08-03 02:33:32

Explanation from the Preshing on Programming blog

当你有两个相关的操作,你想成对执行,中间有一段代码时,它很方便。经典的例子是打开一个文件,操作文件,然后关闭它:

with open('output.txt','w') as f: f.write('Hi f.write!‘)

上面的with语句将自动关闭嵌套代码块之后的文件。(继续阅读以了解关闭是如何发生的。)使用with语句的优点是,无论嵌套块如何退出,都可以保证关闭文件。如果在块结束之前发生异常,它将在异常被外部异常处理程序捕获之前关闭文件。如果嵌套块包含return语句、continue或break语句,则with语句在这些情况下也会自动关闭文件。

票数 466
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1369526

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档