python关键字“with”用于什么?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (170)

例子来自:http://docs.python.org/tups/inputoutput.html

>>> with open('/tmp/workfile', 'r') as f:
...     read_data = f.read()
>>> f.closed
True
提问于
用户回答回答于

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

来源于Python文档

with语句证明了以前使用的代码。try...finally块,以确保执行清理代码。在本节中,我将讨论这个语句,因为它将被普遍使用。在下一节中,我将研究实现细节,并演示如何编写对象以用于此语句。 大with语句是一个控制流结构,其基本结构是: 带表情作为变量::With-Block 表达式将被计算,并且它应该导致一个支持上下文管理协议的对象(即__enter__()__exit__()方法)。

用户回答回答于

对编程博客的解读:

当您有两个相关的操作时,这是非常方便的,您希望以一对的形式执行这些操作,中间有一个代码块。典型的示例是打开文件,操作文件,然后关闭文件: 以open('output.txt', 'w') as f: f.write('Hi there!') 上述WITH语句将在嵌套代码块之后自动关闭文件。(继续阅读以查看关闭是如何发生的。)使用WITH语句的优点是,无论嵌套块如何退出,它都保证关闭文件。如果异常发生在块结束之前,它将在外部异常处理程序捕获异常之前关闭该文件。如果嵌套块包含返回语句,或继续语句或中断语句,WITH语句也会自动关闭这些情况下的文件。

扫码关注云+社区

领取腾讯云代金券