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脚本分享
Apr 21 Python
Python 列表(List) 的三种遍历方法实例 详解
Apr 15 Python
Python 16进制与中文相互转换的实现方法
Jul 09 Python
Python读取数据集并消除数据中的空行方法
Jul 12 Python
python对视频画框标记后保存的方法
Dec 07 Python
python儿童学游戏编程知识点总结
Jun 03 Python
利用anaconda保证64位和32位的python共存
Mar 09 Python
python list多级排序知识点总结
Oct 23 Python
Python综合应用名片管理系统案例详解
Jan 03 Python
python with (as)语句实例详解
Feb 04 Python
python编程的核心知识点总结
Feb 08 Python
python 如何执行控制台命令与操作剪切板
May 20 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
PHP实现的汉字拼音转换和公历农历转换类及使用示例
2014/07/01 PHP
php类常量用法实例分析
2015/07/09 PHP
详解PHP队列的实现
2019/03/14 PHP
jQuery 数据缓存data(name, value)详解及实现
2010/01/04 Javascript
Javascript 实用小技巧
2010/04/07 Javascript
javascript 四则运算精度修正函数代码
2010/05/31 Javascript
提高javascript效率 一次判断,而不要次次判断
2012/03/30 Javascript
js+html+css实现鼠标移动div实例
2013/01/30 Javascript
jQuery中extend()和fn.extend()方法详解
2015/06/03 Javascript
javascript实现无缝上下滚动特效
2015/12/16 Javascript
基于javascript实现全国省市二级联动下拉选择菜单
2016/01/28 Javascript
js实现分割上传大文件
2016/03/09 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(二)
2016/05/17 Javascript
深究AngularJS中$sce的使用
2017/06/12 Javascript
使用async、enterproxy控制并发数量的方法详解
2018/01/02 Javascript
vue + vuex todolist的实现示例代码
2018/03/09 Javascript
Vue商品控件与购物车联动效果的实例代码
2019/07/21 Javascript
js实现图片无缝循环轮播
2019/10/28 Javascript
Vue路由守卫及页面登录权限控制的设置方法(两种)
2020/03/31 Javascript
[38:54]完美世界DOTA2联赛PWL S2 Rebirth vs LBZS 第一场 11.28
2020/12/01 DOTA
Python迭代器和生成器定义与用法示例
2018/02/10 Python
使用pandas读取csv文件的指定列方法
2018/04/21 Python
python openvc 裁剪、剪切图片 提取图片的行和列
2019/09/19 Python
python判断两个序列的成员是否一样的实例代码
2020/03/01 Python
Python学习之路安装pycharm的教程详解
2020/06/17 Python
基于Python采集爬取微信公众号历史数据
2020/11/27 Python
Python基于template实现字符串替换
2020/11/27 Python
Python-split()函数实例用法讲解
2020/12/18 Python
HTML5中的Web Notification桌面右下角通知功能的实现
2018/04/19 HTML / CSS
Linux如何为某个操作添加别名
2015/02/05 面试题
个人对照检查材料
2014/02/12 职场文书
矿泉水广告词
2014/03/20 职场文书
学校党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
2015年主婚人婚礼致辞
2015/07/28 职场文书
原生JS封装vue Tab切换效果
2021/04/28 Vue.js
Apache POI的基本使用详解
2021/11/07 Servers