小白教程

 找回密码
 立即注册

with语句

发布者: 小白教程

try块中获取资源,然后在块中释放资源finally是一种常见的模式。因此,还有一条with语句可以使它以干净的方式完成:

另存为exceptions_using_with.py

with open("poem.txt") as f:
    for line in f:
        print(line, end='')

这个怎么运作

输出应与前面的示例相同。此处的区别在于,我们正在将open函数与with语句一起使用-我们将关闭文件的操作由自动完成with open

幕后发生的事情是该with语句使用了一个协议它获取open语句返回的对象,在这种情况下,我们将其称为“ thefile”。

总是thefile.__enter__在开始其下面的代码块之前调用该函数,并且总是thefile.__exit__在完成该代码块之后调用

因此,finally应该在该块中编写的代码应由该__exit__方法自动处理。这就是帮助我们避免try..finally重复使用显式语句的原因。

关于此主题的更多讨论超出了本书的范围,因此,请参考PEP 343以获得全面的说明。

上一篇:引发异常下一篇:sys 模块

Archiver|手机版|小黑屋|小白教程 ( 粤ICP备20019910号 )

GMT+8, 2024-11-24 12:26 , Processed in 0.057556 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

返回顶部