Python中with as 语句

从解释器看with语句执行流程

whit expression [as variable]:
       with-block
  1. as variable 可以省略
  2. 有一个句块需要执行

执行with语句时候,解释器先求出表达式的值,这个值是上下文管理器,拥有两个类魔术方法:

def __enter___():
  #   描述进入上下文
  pass


def __exit__():
  #   描述退出上下文
  pass

with 语句其实会先执行init 方法创建这个对象,创建完成后自动执行进入方法, 并将此对象赋值于as之后的变量,执行语句块,然后退出上下文之前自动执行退出方法。

参照文章
https://blog.csdn.net/lanhuazui10/article/details/120938353

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 魔法方法 魔法方法是python十分强大的一个特性,他允许我们自定义类的行为,从而实现各种功能,只要实现了对应的魔...
    dawsonenjoy阅读 336评论 0 3
  • 闭包和装饰器 闭包:就是在一个外函数中定义了一个内部函数,内部函数引用了外函数的临时变量,并且外函数的返回值就是内...
    有猫饼233阅读 582评论 0 0
  • itemdetailPEP8TitleStyle Guide for Python CodeVersionc451...
    零一间阅读 159评论 0 0
  • 最近做项目的时候,自己写了个脚本用来测试漏洞信息,但是因为开始写的是单线程的,所以效率比较低,想要优化一下脚本,所...
    Echocipher阅读 815评论 0 0
  • 面向对象 创建类 通过class关键字定义,类名最好以大写字母开头,举例: 实例化 直接调用类即可实例化,举例: ...
    dawsonenjoy阅读 560评论 0 1