Python上下文管理器用法及实例解析


Posted in Python onNovember 11, 2019

这篇文章主要介绍了Python上下文管理器用法及实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

with上下文管理器

语法:with ... as ... 如:with open('test.txt', 'r') as fp,打开一个文件作为文件句柄对象赋值给fp

with是一个语句块,上下文管理器中里面实现了两个方法:enter, exit,enter是进入代码块前自动调用的方法,exit是

退出with语句块时调用的,例如,文件对象在退出上下文管理器时调用了exit中的self.close()语句,所以就不用手动去关闭文件

只要重写了enter方法和exit两个方法,就可以自定义一个with上下文管理器

class SayHello(object):
 def __init__(self, text):
  self.text = text
 def __enter__(self):
  return self #必须返回对象
 def __exit__(self, exc_type, exc_value, traceback):
  self.text = "Bye!"

with SayHello("Hello") as greet:
 print(greet.text)
print(greet.text)

输出:

Hello
Bye!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python字符遍历的艺术
Sep 06 Python
python基础教程之popen函数操作其它程序的输入和输出示例
Feb 10 Python
python实现简单的TCP代理服务器
Oct 08 Python
基于python的多进程共享变量正确打开方式
Apr 28 Python
django之跨表查询及添加记录的示例代码
Oct 16 Python
PyQt5实现简单数据标注工具
Mar 18 Python
python调用并链接MATLAB脚本详解
Jul 05 Python
python实现在函数图像上添加文字和标注的方法
Jul 08 Python
Python SELENIUM上传文件或图片实现过程
Oct 28 Python
如何在python开发工具PyCharm中搭建QtPy环境(教程详解)
Feb 04 Python
Keras实现将两个模型连接到一起
May 23 Python
python使用BeautifulSoup 解析HTML
Apr 24 Python
Django 请求Request的具体使用方法
Nov 11 #Python
浅谈Python类中的self到底是干啥的
Nov 11 #Python
python 调试冷知识(小结)
Nov 11 #Python
通过 Django Pagination 实现简单分页功能
Nov 11 #Python
python机器学习实现决策树
Nov 11 #Python
Python SQLAlchemy入门教程(基本用法)
Nov 11 #Python
django中间键重定向实例方法
Nov 10 #Python
You might like
使用Sphinx对索引进行搜索
2013/06/25 PHP
使用php转义输出HTML到JavaScript
2015/03/27 PHP
PHP中使用mpdf 导出PDF文件的实现方法
2018/10/22 PHP
javascript demo 基本技巧
2009/12/18 Javascript
jQuery+jqmodal弹出窗口实现代码分明
2010/06/14 Javascript
js优化针对IE6.0起作用(详细整理)
2012/12/25 Javascript
js实现拉伸拖动iframe的具体代码
2013/08/03 Javascript
javascript实现禁止鼠标滚轮事件
2015/07/24 Javascript
jQuery实现悬浮在右上角的网页客服效果代码
2015/10/24 Javascript
AngularJS 让人爱不释手的八种功能
2016/03/23 Javascript
可输入文字查找ajax下拉框控件 ComBox的实现方法
2016/10/25 Javascript
Jquery Easyui进度条组件Progress使用详解(8)
2020/03/26 Javascript
Vue项目History模式404问题解决方法
2018/10/31 Javascript
不刷新网页就能链接新的js文件方法总结
2020/03/01 Javascript
使用npm命令提示: 'npm' 不是内部或外部命令,也不是可运行的程序的处理方法
2020/05/14 Javascript
[01:00:53]OG vs IG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
详解Python pygame安装过程笔记
2017/06/05 Python
python实现AES加密与解密
2019/03/28 Python
Python中如何导入类示例详解
2019/04/17 Python
Python 的字典(Dict)是如何存储的
2019/07/05 Python
python科学计算之numpy——ufunc函数用法
2019/11/25 Python
使用python-opencv读取视频,计算视频总帧数及FPS的实现
2019/12/10 Python
详解Scrapy Redis入门实战
2020/11/18 Python
python制作微博图片爬取工具
2021/01/16 Python
使用html5+css3来实现slider切换效果告别javascript+css
2013/01/08 HTML / CSS
澳大利亚在线百货商店:Real Smart
2017/08/13 全球购物
劳动实践课感言
2014/02/01 职场文书
教师党员一句话承诺
2014/03/28 职场文书
超市活动计划书
2014/04/24 职场文书
新闻人物通讯稿
2014/10/09 职场文书
因公司原因离职的辞职信范文
2015/05/12 职场文书
教师旷工检讨书
2015/08/15 职场文书
Nginx服务器如何设置url链接
2021/03/31 Servers
php微信小程序解包过程实例详解
2021/03/31 PHP
MySQL锁机制
2021/04/05 MySQL
python实现黄金分割法的示例代码
2021/04/28 Python