with open('path', 'r' ,encoding='utf-8') as f:

  代码块

上述就叫做上线文管理协议,即with语句,为了让一个对象兼容with语句,必须在这个对象的类中声明__enter__和__exit__方法。

上下文管理协议:

  class Open:

    def __init__(self,name):

      self.name=name

    def __enter__(self):

      print('出现with语句 ,对象的__enter__被触发,有返回值则赋值给as声明的变量')

      #return self

    def __exit__(self,exc_type,exc_val,exc_tb):

     print('重要代码块执行完后,在执行我!')

exc_type:  异常类型

,exc_val: 异常值

,exc_tb: 追溯类型

     

转载于:https://www.cnblogs.com/yanxiatingyu/p/9266056.html

python 面向对象编程 之 上下文管理协议相关推荐

  1. python语言使用什么语句实现上下文管理协议_Python with语句上下文管理器两种实现方法分析...

    本文实例讲述了Python with语句上下文管理器.分享给大家供大家参考,具体如下: 在编程中会经常碰到这种情况:有一个特殊的语句块,在执行这个语句块之前需要先执行一些准备动作:当语句块执行完成后, ...

  2. python语言使用什么语句实现上下文管理协议_Python 上下文管理器

    上下文管理器 在使用Python编程中,可以会经常碰到这种情况:有一个特殊的语句块,在执行这个语句块之前需要先执行一些准备动作:当语句块执行完成后,需要继续执行一些收尾动作. 例如:当需要操作文件或数 ...

  3. 十六. 面向对象上下文管理协议

    一. __enter__和__exit__ 我们知道在操作文件对象的时候可以这么写1 with open('a.txt') as f: 2 '代码块' 上述叫做上下文管理协议,即with语句,为了让一 ...

  4. python上下文管理协议_Python3基础-上下文管理协议

    一.上下文管理协议 操作文件对象的时候可以这样写 with open('a.txt','r+') asf:'代码块' 上述叫做上下文管理协议,即with语句,为了让对象兼容with语句,必须在这个对象 ...

  5. python中的with上下文管理器

    with 语句 with 语句是 Pyhton 提供的一种简化语法,确保不管使用过程中是否发生异常都会执行必要的"清理"操作,释放资源. 在没有学习with的句法之前,通常我们都是 ...

  6. 《Python面向对象编程指南》——2.7 __del__()方法

    本节书摘来自异步社区<Python面向对象编程指南>一书中的第2章,第2.7节,作者[美]Steven F. Lott, 张心韬 兰亮 译,更多章节内容可以访问云栖社区"异步社区 ...

  7. python 多态 锁_python 上下文管理器,多态,数据锁定与自省,

    python 上下文管理器,多态,数据锁定与自省, 前文课题 通过装饰器来实现单例模式 通过类实现一个通用装饰器,皆可以装饰函数也可装饰类,即可有参也可无参 描述 new str repr call ...

  8. Python基础教程:上下文管理器 context manager(with...as...)

    一.概念 上下文管理器:就是实现了上下文管理协议的对象.主要用于保存和恢复各种全局状态,关闭文件等.上下文管理器本身是一种装饰器. 上下文允许可以自动的开始和结束一些和事情.例如当利用with-as打 ...

  9. Python面向对象编程随笔

    Python面向对象编程 参考教程:https://www.bilibili.com/video/av8475172?p=1 面向过程与面向对象 面向过程:自顶向下,用于解决计算问题或实现某种算法,与 ...

最新文章

  1. 2022-2028年中国环烷基润滑油行业市场研究及前瞻分析报告
  2. data的值 如何初始化vue_vue data恢复初始化数据的实现方法
  3. tableau技术小积累
  4. 计算机具有很强的记忆力记忆能力的基础是,基于学习能力的记忆力计算机测评研究...
  5. 很高兴加入 英文_XR车载公司Holoride加入高通XR计划
  6. MongoDb 大数据查询优化、 MongoDB 索引、复合索引、唯一索引、 explain 分 析查询速度
  7. RTSP播放器开发过程中需要考虑哪些关键因素
  8. 性能测试之JMeter配置元件【计数器】
  9. 计算机网络的abc类地址,abc类私有ip地址范围
  10. 云计算机平台搭建,搭建云计算平台的步骤
  11. 批量导入手机通讯录_大批量手机号导入通讯录软件
  12. 支持android 9的框架,【测评】安卓9 xposed框架 riru edxposed与太极·magisk对比
  13. escplise使用教程_Eclipse使用教程(图文详解)
  14. yum install安装时 提示“Another app is currently holding the yum lock; waiting for it to exit...”原因和解决
  15. bzoj-1488 图的同构
  16. 办公技巧:10个WORD神操作,值得收藏
  17. em表示什么长度单位_CSS的长度单位(em)与em标签
  18. QTTabBar安装与使用: 更胜浏览器的Windows平台浏览文件方式
  19. 计算图片的相似度(深度学习)
  20. SpringSecurity原理:探究SpringSecurity运作流程

热门文章

  1. 合并两个有序数组为一个新的有序数组
  2. Ambari 架构(三)Ambari Server 架构
  3. 部署支持php和Redis的Nginx服务器
  4. MySQL中的条件赋值
  5. linux下xampp(apache)中配置域名访问,以及遇到的问题
  6. python中的for循环
  7. 阿里面试 Java 都问什么?万字总结!
  8. MySQL 到底是怎么解决幻读的?
  9. 关于feign调用时,session丢失的解决方案
  10. 【Scratch】青少年蓝桥杯_每日一题_9.09_画圆形渐变螺旋