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通过colorama模块在控制台输出彩色文字的方法
Mar 19 Python
Python编程实现控制cmd命令行显示颜色的方法示例
Aug 14 Python
python多维数组切片方法
Apr 13 Python
对TensorFlow的assign赋值用法详解
Jul 30 Python
利用nohup来开启python文件的方法
Jan 14 Python
详解PyCharm安装MicroPython插件的教程
Jun 24 Python
PyQt+socket实现远程操作服务器的方法示例
Aug 22 Python
Python实现PyPDF2处理PDF文件的方法示例
Sep 25 Python
pytorch获取模型某一层参数名及参数值方式
Dec 30 Python
利用matplotlib为图片上添加触发事件进行交互
Apr 23 Python
python 动态渲染 mysql 配置文件的示例
Nov 20 Python
python中实现栈的三种方法
Dec 19 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关联链接常用代码
2012/11/05 PHP
php判断文件夹是否存在不存在则创建
2015/04/09 PHP
ThinkPHP路由详解
2015/07/27 PHP
微信获取用户地理位置信息的原理与步骤
2015/11/12 PHP
PHP实现根据数组的值进行分组的方法
2017/04/20 PHP
ThinkPHP框架中使用Memcached缓存数据的方法
2018/03/31 PHP
Mootools 1.2教程 滑动效果(Slide)
2009/09/15 Javascript
js+html5通过canvas指定开始和结束点绘制线条的方法
2015/06/05 Javascript
程序员必知35个jQuery 代码片段
2015/11/05 Javascript
jQuery操作动态生成的内容的方法
2016/05/28 Javascript
浅谈jquery页面初始化的4种方式
2016/11/27 Javascript
js实现仿购物车加减效果
2017/03/01 Javascript
ES6学习教程之Map的常用方法总结
2017/08/03 Javascript
webpack 单独打包指定JS文件的方法
2018/02/22 Javascript
纯JS实现的读取excel文件内容功能示例【支持所有浏览器】
2018/06/23 Javascript
JavaScript设计模式之工厂模式简单实例教程
2018/07/03 Javascript
jQuery+vue.js实现的多选下拉列表功能示例
2019/01/15 jQuery
jQuery实现的卷帘门滑入滑出效果【案例】
2019/02/18 jQuery
JavaScript实现像雪花一样的Hexaflake分形
2020/07/07 Javascript
浅析我对JS延迟异步脚本的思考
2020/10/12 Javascript
JS实现可以用键盘方向键控制的动画
2020/12/11 Javascript
python实现查找excel里某一列重复数据并且剔除后打印的方法
2015/05/26 Python
python万年历实现代码 含运行结果
2017/05/20 Python
Python QQBot库的QQ聊天机器人
2019/06/19 Python
Django models.py应用实现过程详解
2019/07/29 Python
详解Python中字符串前“b”,“r”,“u”,“f”的作用
2019/12/18 Python
树莓派升级python的具体步骤
2020/07/05 Python
python drf各类组件的用法和作用
2021/01/12 Python
CSS中垂直居中的简单实现方法
2015/07/06 HTML / CSS
敏捷开发的主要原则都有哪些
2015/04/26 面试题
高三学习决心书
2014/03/11 职场文书
安全宣传标语
2014/06/10 职场文书
升学宴学生答谢词
2015/01/05 职场文书
Python 用户输入和while循环的操作
2021/05/23 Python
pt-archiver 主键自增
2022/04/26 MySQL
JAVA 线程池(池化技术)的实现原理
2022/04/28 Java/Android