流畅的Python读书笔记 --- 第十五章 上下文管理器和else块

近期在读“流畅的Python”这本书,想把自己的读书笔记分享给大家,希望能帮到也对这本书感兴趣但是没时间看的各位。(文章中大部分的话和图片摘录总结自“流畅的Python”一书,以及python官方网站)

章节概述::Python中的一些流程控制器,比如上下文管理器,with,else,for模块等。
章节结构:

  • else
  • with和上下文管理器

具体内容:

  • else

else子句不仅能在if语句中使用,还能再for,while和try中使用。
for块中,当循环完毕,没有被break语句中断,才运行else
while中,当循环跳进为假,且没有被break中断,才运行else
try块中,没有异常的是偶运行else,结合else的try块可以实现两种Python编程风格:
1.EAFP = Easier to Ask for Forgiveness than Permission,就是假定一件事成立比如键值存在,如果不成立就捕获异常。
2.LBYL = Look Before You Leap, 与EAFP相反,存在很多if,经过很多检查判断后在进行该有的逻辑。

  • with块和上下文管理器

上下文管理器是为了管理with语句。with是为了简化try/finally模式。
在python标准库里,提供contextlib工具库,有定义好的类和函数:
closing / suppress / @contextmanager / ContextDecorator / ExitStack
https://docs.python.org/3/lib...

你可能感兴趣的:(python,读书笔记)