返回介绍

第 15 章 上下文管理器和 else 块

发布于 2024-02-05 21:59:47 字数 769 浏览 0 评论 0 收藏 0

最终,上下文管理器可能几乎与子程序(subroutine)本身一样重要。目前,我们只了解了上下文管理器的皮毛……Basic 语言有 with 语句,而且很多语言都有。但是,在各种语言中 with 语句的作用不同,而且做的都是简单的事,虽然可以避免不断使用点号查找属性,但是不会做事前准备和事后清理。不要觉得名字一样,就意味着作用也一样。with 语句是非常了不起的特性。1

——Raymond Hettinger
雄辩的 Python 布道者

1节选自 PyCon US 2013 主题演讲“What Makes Python Awesome”;关于 with 的部分从 23:00 开始,到 26:15 结束。

本章讨论其他语言中不常见的一些流程控制特性,正因如此,Python 用户往往会忽视或没有充分使用这些特性。下面要讨论的特性有:

with 语句和上下文管理器

for、while 和 try 语句的 else 子句

with 语句会设置一个临时的上下文,交给上下文管理器对象控制,并且负责清理上下文。这么做能避免错误并减少样板代码,因此 API 更安全,而且更易于使用。除了自动关闭文件之外,with 块还有很多用途。

else 子句与 with 语句完全没有关系。可是已经写到第五部分了,我找不到其他地方介绍 else,又不能单写只有一页内容的一章,因此就在这一章讨论了。

下面从这个较小的话题开始,进入本章的实质内容。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文