python 面向对象编程 之 上下文管理协议
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 面向对象编程 之 上下文管理协议相关推荐
- python语言使用什么语句实现上下文管理协议_Python with语句上下文管理器两种实现方法分析...
本文实例讲述了Python with语句上下文管理器.分享给大家供大家参考,具体如下: 在编程中会经常碰到这种情况:有一个特殊的语句块,在执行这个语句块之前需要先执行一些准备动作:当语句块执行完成后, ...
- python语言使用什么语句实现上下文管理协议_Python 上下文管理器
上下文管理器 在使用Python编程中,可以会经常碰到这种情况:有一个特殊的语句块,在执行这个语句块之前需要先执行一些准备动作:当语句块执行完成后,需要继续执行一些收尾动作. 例如:当需要操作文件或数 ...
- 十六. 面向对象上下文管理协议
一. __enter__和__exit__ 我们知道在操作文件对象的时候可以这么写1 with open('a.txt') as f: 2 '代码块' 上述叫做上下文管理协议,即with语句,为了让一 ...
- python上下文管理协议_Python3基础-上下文管理协议
一.上下文管理协议 操作文件对象的时候可以这样写 with open('a.txt','r+') asf:'代码块' 上述叫做上下文管理协议,即with语句,为了让对象兼容with语句,必须在这个对象 ...
- python中的with上下文管理器
with 语句 with 语句是 Pyhton 提供的一种简化语法,确保不管使用过程中是否发生异常都会执行必要的"清理"操作,释放资源. 在没有学习with的句法之前,通常我们都是 ...
- 《Python面向对象编程指南》——2.7 __del__()方法
本节书摘来自异步社区<Python面向对象编程指南>一书中的第2章,第2.7节,作者[美]Steven F. Lott, 张心韬 兰亮 译,更多章节内容可以访问云栖社区"异步社区 ...
- python 多态 锁_python 上下文管理器,多态,数据锁定与自省,
python 上下文管理器,多态,数据锁定与自省, 前文课题 通过装饰器来实现单例模式 通过类实现一个通用装饰器,皆可以装饰函数也可装饰类,即可有参也可无参 描述 new str repr call ...
- Python基础教程:上下文管理器 context manager(with...as...)
一.概念 上下文管理器:就是实现了上下文管理协议的对象.主要用于保存和恢复各种全局状态,关闭文件等.上下文管理器本身是一种装饰器. 上下文允许可以自动的开始和结束一些和事情.例如当利用with-as打 ...
- Python面向对象编程随笔
Python面向对象编程 参考教程:https://www.bilibili.com/video/av8475172?p=1 面向过程与面向对象 面向过程:自顶向下,用于解决计算问题或实现某种算法,与 ...
最新文章
- 2022-2028年中国环烷基润滑油行业市场研究及前瞻分析报告
- data的值 如何初始化vue_vue data恢复初始化数据的实现方法
- tableau技术小积累
- 计算机具有很强的记忆力记忆能力的基础是,基于学习能力的记忆力计算机测评研究...
- 很高兴加入 英文_XR车载公司Holoride加入高通XR计划
- MongoDb 大数据查询优化、 MongoDB 索引、复合索引、唯一索引、 explain 分 析查询速度
- RTSP播放器开发过程中需要考虑哪些关键因素
- 性能测试之JMeter配置元件【计数器】
- 计算机网络的abc类地址,abc类私有ip地址范围
- 云计算机平台搭建,搭建云计算平台的步骤
- 批量导入手机通讯录_大批量手机号导入通讯录软件
- 支持android 9的框架,【测评】安卓9 xposed框架 riru edxposed与太极·magisk对比
- escplise使用教程_Eclipse使用教程(图文详解)
- yum install安装时 提示“Another app is currently holding the yum lock; waiting for it to exit...”原因和解决
- bzoj-1488 图的同构
- 办公技巧:10个WORD神操作,值得收藏
- em表示什么长度单位_CSS的长度单位(em)与em标签
- QTTabBar安装与使用: 更胜浏览器的Windows平台浏览文件方式
- 计算图片的相似度(深度学习)
- SpringSecurity原理:探究SpringSecurity运作流程