上下文管理器

只有理解了上下文管理器,才能更好理解with的工作原理。

上下文管理协议,这个协议主要包含两个方法:

  • __enter__()
  • __exit__()

协议一般是管定标准的,具体执行要落实到对象,而支持上下文管理协议的对象必须要实现上面的两个方法。

上下文管理器

实现了上面提到的__enter__()__exit__()方法的支持上下文管理的对象。

通常使用with语句来调用上下文管理器。

运行时上下文

由上下文管理器创建。__enter__()进入运行时上下文,__exit__()退出运行时上下文。

上下文表达式
跟在with后面的表达式,这个表达式要反悔一个上下文管理器对象。

语句体
with语句包裹起来的代码块。执行语句体前调用上下文管理器的__enter__()方法,执行完毕后,调用`exit()方法。

以文件打开关闭作为例子:

with open('test.csv') as f:for line in f:print(line)

with语句结束后,都可以关闭文件句柄。

END.

【Python基础】with语句相关推荐

  1. Python基础——循环语句

    Python基础--循环语句 Python基础--循环语句 while循环 while循环与if....单分支结构的区别 while的四部循环法** for....in.....循环 break的使用 ...

  2. python基础常用语句-python爬虫之python一条语句分析几个常用函数和概念

    https://www.xin3721.com/eschool/pythonxin3721/ 前言 过年也没完全闲着,每天用一点点时间学点东西,本文为大家介绍几个python操作的细节,包含all.a ...

  3. python 基础 - 循环语句

    python 循环语句 Python中的循环语句有 for 和 while.Python循环语句的控制结构图如下所示: image.png While 循环 Python中while语句的一般形式: ...

  4. python基础常用语句-Python基本语句

    在学习W3Cschool python高级教程之前,大家接触过许多python语句,在本文中我们将Python一些基本的常用语句做了汇总,并简单介绍下这些python常用语句的用途和标准格式,放在一起 ...

  5. python基础常用语句-Python基础语法

    [TOC] 1.变量基础与简单数据类型 1.1变量解释 变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间 name = 'python' number = 2017 print(na ...

  6. python基础常用语句-Python语言的一些基本常用语句

    (1).赋值:创建变量引用值 a,b,c="aa","bb","cc" (2).调用:执行函数 log.write("spam,n ...

  7. python基础(part4)--语句

    鄙人学习笔记 开发工具:Spyder 文章目录 语句 行(物理行/逻辑行) 选择语句 条件表达式 循环语句 While for(for 比 while 更适合做预定次数的循环) range(整数生成器 ...

  8. 03.Python基础--控制流语句-顺序结构-判断结构-循环语句

    文章目录 1.控制流语句 1.1 if条件判断 1.1.1 布尔类型和其他数据类型之间的转换关系 1.1.2 if 嵌套 1.1.3 列表 1.2 循环语句 1.2.1 for循环 1.2.2 whl ...

  9. python基础循环语句

    python循环语句适合刚入门新手 python循环语句:一,while循环的基础语法.二,while循环的嵌套应用.三,for循环的基础语法.四,for循环的嵌套应用.五,循环中断. 一,while ...

  10. 利用Python基础代码语句,实现2G时代文字小游戏,世界如此简单

    优质文章,第一时间送达! 相信许多80,90后都玩过2G时代的文字小游戏,它是来自QQ家园的专属回忆.偷菜,美味小镇,大乐斗,还有精武堂等等,虽然只是文字的输出,但是留给我们这一代的人的印象却是最深刻 ...

最新文章

  1. 无人驾驶汽车系统入门——基于Frenet优化轨迹的无人车动作规划方法
  2. ARM Cortex-A 编程手册学习笔记
  3. 2022.3.28紫薇
  4. 关于一些常见智柜问题的分析及解决办法
  5. 云漫圈 | 什么是字符串匹配算法?
  6. sqlalchemy 初始化数据库
  7. bzoj 2752 9.20考试第三题 高速公路(road)题解
  8. 中小SAP项目中的人员编制(转)
  9. html编写回到顶部,html回到顶部代码
  10. 微信小程序开发之组件view,scroll-view,swiper,text,rich-text,button,image,navigator
  11. C4D中英文对照—材质编辑器之反射通道
  12. 企业开票信息税号查询API接口服务
  13. ghd oracle,ghd ORACLE双管卷发棒怎么样?具有离子夹外型、卷发棒功能简直是手残少女救星...
  14. Sqli-Lab | Less 21-23
  15. 第一章-第六题(帮人抢票,帮人选课这些软件是否合法 你怎么看?)--By梁旭晖...
  16. 解决Redis问题:JedisConnectionException: Could not get a resource from the pool
  17. Pycharm关闭错误提示,关闭“This inspection detects shadowing names defined in outer scopes.”等
  18. ixgbe 如何开启vf
  19. 人在江湖,以“核”为贵
  20. 分时线的9代表什么_A股市场:股票集合竞价时涨停,9点20分主力却突然撤单,代表着什么?...

热门文章

  1. 《统计学基本概念和方法》读书笔记+读后感(1)
  2. ubuntu19.04支持android,Ubuntu 19.04 最终发布日期和计划功能公布
  3. react网页适配不同分辨率_PC端页面适应不同的分辨率的方法 (转载)
  4. 内存颗粒和闪存颗粒的区别_国产闪存颗粒终于熬出头 紫光存储S100固态硬盘评测...
  5. linux分区分错了能改么,linux 分区错误怎么处理
  6. camunda 流程执行追踪_流程引擎为什么选 Camunda
  7. php7单独运行,如何让PHP 7运行更加神速
  8. java+基于dom4j工具类_基于dom4j的xml映射实体的工具类(java)
  9. busybox linux内核,使用busybox创建精简linux内核实例
  10. python变量_Python变量