python知识点:上下文管理器[__enter__ 和 __exit__ ]
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/reallocing1/article/details/64526895
上下文管理器(context manager)是Python2.5开始支持的一种语法,用于规定某个对象的使用范围。一旦进入或者离开该使用范围,会有特殊操作被调用 (比如为对象分配或者释放内存)。它的语法形式是with…as…
with语句
with open('some.txt',"w") as f:for i in f:print i
自定义上下文管理器
实现函数enter和exit
class Diycontextor:def __init__(self,name,mode):self.name = nameself.mode = modedef __enter__(self):print "Hi enter here!!"self.filehander = open(self.name,self.mode)return self.filehanderdef __exit__(self,*para):print "Hi exit here"self.filehander.close()with Diycontextor('py_ana.py','r') as f:for i in f:print i
enter()返回一个对象。上下文管理器会使用这一对象作为as所指的变量
参考:
- http://kuanghy.github.io/2015/08/08/python-with
- http://www.cnblogs.com/vamei/archive/2012/11/23/2772445.html
python知识点:上下文管理器[__enter__ 和 __exit__ ]相关推荐
- python上下文管理关键字_理解 Python 的上下文管理器
任何 Python 教程,必然会讲解如何打开一个文件.而任何提到打开文件的地方,都必然会推荐用 with 来操作文件的读写.比如说这里有一篇非常优秀的教程,文中提到在 Python 中,文件读写是通过 ...
- python进入上下文管理器_浅谈Python中with(上下文管理器)的用法
例子一 首先来看一段代码: classFoo(object):def __init__(self):print('实例化一个对象')def __enter__(self):print('进入')def ...
- Python 上下文管理器和 with 语句
1. 上下文管理器概念 什么是 Python 的上下文管理器(Context Managers)呢? 含有 __enter__ 和 __exit__ 方法的对象就是.上下文管理器存在的目的是管理 ...
- python意外退出_有趣的Python上下文管理器
阅读耗时:9分钟 目录 编写自定义上下文管理器 从生成器到上下文管理器 将上下文管理器编写为装饰器 嵌套式上下文管理器 组合式上下文管理器 利用用上下文管理器创建SQLAlchemy session ...
- python 计时器_Python上下文管理器的魔力
点击关注我哦 一篇文章带你了解Python上下文管理器的魔力 小编将为您准备一份很棒的Python上下文管理器使用指南,这将使您的代码更具可读性和可靠性,降低您的错误发生率. 资源管理器是我们在任何编 ...
- Python上下文管理器的魔力
点击关注我哦 一篇文章带你了解Python上下文管理器的魔力 小编将为您准备一份很棒的Python上下文管理器使用指南,这将使您的代码更具可读性和可靠性,降低您的错误发生率. 资源管理器是我们在任何编 ...
- Python进阶(上下文管理器与with语句)
/*上下文管理器必须有__enter__和__exit__方法*/ class MyResource:def __enter__(self):print('链接资源')return self/*__e ...
- python使用@contextmanager来定义上下文管理器(一篇文章,彻底明白!码文并茂,简单明了)和 yield 和 __enter__ 和 __exit__
什么是上下文管理器? 上下文管理器是在Python2.5之后加入的功能,可以在方便的需要的时候比较精确地分配和释放资源, with便是上下文管理器的最广泛的应用 with open("tes ...
- Python中必须知道的知识点:上下文管理器
在Python中让自己创建的函数.类.对象支持with语句,就实现了上线文管理协议.我们经常使用with open(file, "a+") as f:这样的语句,无需手动调用f.c ...
最新文章
- poj1679(次小生成树)
- Horticulture Research:植物界的“投之以桃,报之以李”的合作共赢典范
- Linux 2.6内核编译与配置安装升级
- VCTransitionsLibrary –自定义iOS交互式转场动画的库
- 把现有的typesctipt+react项目接入到electron
- 如何实现把固定内容自动写入excel_Excel如何把修改记录自动写入批注?
- android:windowSoftInputMode属性详解
- sklearn tfidf求余弦相似度_【基础算法 】文本相似度计算
- 接口测试如何在json中引用mock变量
- python 流水作业调度_动态规划——流水作业调度问题
- 大数据为我们的生活带来了什么?
- 【CF37E】 Trial for Chief
- PS 去除图片中的字
- 周杰伦江语晨恋情曝光 化名写情歌被揭穿
- 我是如何降低项目的沟通成本?
- 14.运算符(operator)
- [sdx12]sdx12平台QCA6174 使用hostapd WiFi 2.4G强制40MHz频宽不生效问题分析及实现
- Python爬取《少年的你》豆瓣短评
- 短信验证码安全常见逻辑漏洞
- 英语六级语法:强调句,倒装句和虚拟语气
热门文章
- 天气正好,hello world!
- hdu---5455---fang fang
- php+sql创建本地项目详细步骤1——创建数据库数据表,数据库连接
- 抓住二维核力的尾巴---将粒子
- 工业级服务器销售电话,工业级服务器
- 弹性均质圆环法计算过程_蚝油的加工工艺,蚝油总固形物(水分含量)计算公式,检测方法...
- php判断有没有分页,php分页怎么判断已经到了最后一页?
- 【STM32】标准外设库,系统架构,时钟系统
- 2.11 向量化-深度学习-Stanford吴恩达教授
- Ardino基础教程 18_驱动74HC595