版权声明:本文为博主原创文章,未经博主允许不得转载。 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

自定义上下文管理器

实现函数enterexit

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__ ]相关推荐

  1. python上下文管理关键字_理解 Python 的上下文管理器

    任何 Python 教程,必然会讲解如何打开一个文件.而任何提到打开文件的地方,都必然会推荐用 with 来操作文件的读写.比如说这里有一篇非常优秀的教程,文中提到在 Python 中,文件读写是通过 ...

  2. python进入上下文管理器_浅谈Python中with(上下文管理器)的用法

    例子一 首先来看一段代码: classFoo(object):def __init__(self):print('实例化一个对象')def __enter__(self):print('进入')def ...

  3. Python 上下文管理器和 with 语句

    1. 上下文管理器概念 什么是 Python 的上下文管理器(Context Managers)呢? ​ 含有 __enter__ 和 __exit__ 方法的对象就是.上下文管理器存在的目的是管理 ...

  4. python意外退出_有趣的Python上下文管理器

    阅读耗时:9分钟 目录 编写自定义上下文管理器 从生成器到上下文管理器 将上下文管理器编写为装饰器 嵌套式上下文管理器 组合式上下文管理器 利用用上下文管理器创建SQLAlchemy session ...

  5. python 计时器_Python上下文管理器的魔力

    点击关注我哦 一篇文章带你了解Python上下文管理器的魔力 小编将为您准备一份很棒的Python上下文管理器使用指南,这将使您的代码更具可读性和可靠性,降低您的错误发生率. 资源管理器是我们在任何编 ...

  6. Python上下文管理器的魔力

    点击关注我哦 一篇文章带你了解Python上下文管理器的魔力 小编将为您准备一份很棒的Python上下文管理器使用指南,这将使您的代码更具可读性和可靠性,降低您的错误发生率. 资源管理器是我们在任何编 ...

  7. Python进阶(上下文管理器与with语句)

    /*上下文管理器必须有__enter__和__exit__方法*/ class MyResource:def __enter__(self):print('链接资源')return self/*__e ...

  8. python使用@contextmanager来定义上下文管理器(一篇文章,彻底明白!码文并茂,简单明了)和 yield 和 __enter__ 和 __exit__

    什么是上下文管理器? 上下文管理器是在Python2.5之后加入的功能,可以在方便的需要的时候比较精确地分配和释放资源, with便是上下文管理器的最广泛的应用 with open("tes ...

  9. Python中必须知道的知识点:上下文管理器

    在Python中让自己创建的函数.类.对象支持with语句,就实现了上线文管理协议.我们经常使用with open(file, "a+") as f:这样的语句,无需手动调用f.c ...

最新文章

  1. poj1679(次小生成树)
  2. Horticulture Research:植物界的“投之以桃,报之以李”的合作共赢典范
  3. Linux 2.6内核编译与配置安装升级
  4. VCTransitionsLibrary –自定义iOS交互式转场动画的库
  5. 把现有的typesctipt+react项目接入到electron
  6. 如何实现把固定内容自动写入excel_Excel如何把修改记录自动写入批注?
  7. android:windowSoftInputMode属性详解
  8. sklearn tfidf求余弦相似度_【基础算法 】文本相似度计算
  9. 接口测试如何在json中引用mock变量
  10. python 流水作业调度_动态规划——流水作业调度问题
  11. 大数据为我们的生活带来了什么?
  12. 【CF37E】 Trial for Chief
  13. PS 去除图片中的字
  14. 周杰伦江语晨恋情曝光 化名写情歌被揭穿
  15. 我是如何降低项目的沟通成本?
  16. 14.运算符(operator)
  17. [sdx12]sdx12平台QCA6174 使用hostapd WiFi 2.4G强制40MHz频宽不生效问题分析及实现
  18. Python爬取《少年的你》豆瓣短评
  19. 短信验证码安全常见逻辑漏洞
  20. 英语六级语法:强调句,倒装句和虚拟语气

热门文章

  1. 天气正好,hello world!
  2. hdu---5455---fang fang
  3. php+sql创建本地项目详细步骤1——创建数据库数据表,数据库连接
  4. 抓住二维核力的尾巴---将粒子
  5. 工业级服务器销售电话,工业级服务器
  6. 弹性均质圆环法计算过程_蚝油的加工工艺,蚝油总固形物(水分含量)计算公式,检测方法...
  7. php判断有没有分页,php分页怎么判断已经到了最后一页?
  8. 【STM32】标准外设库,系统架构,时钟系统
  9. 2.11 向量化-深度学习-Stanford吴恩达教授
  10. Ardino基础教程 18_驱动74HC595