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标准日志模块logging的使用方法
Nov 01 Python
Python实现冒泡,插入,选择排序简单实例
Aug 18 Python
详细解读Python中解析XML数据的方法
Oct 15 Python
Python中列表、字典、元组数据结构的简单学习笔记
Mar 20 Python
Python计算两个日期相差天数的方法示例
May 23 Python
python如何通过实例方法名字调用方法
Mar 21 Python
TensorFlow Session使用的两种方法小结
Jul 30 Python
详解numpy的argmax的具体使用
May 27 Python
Python 跨.py文件调用自定义函数说明
Jun 01 Python
Python基于network模块制作电影人物关系图
Jun 19 Python
详解利用python识别图片中的条码(pyzbar)及条码图片矫正和增强
Nov 17 Python
用pip给python安装matplotlib库的详细教程
Feb 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
最贵的咖啡是怎么产生的,它的风味怎么样?
2021/03/04 新手入门
解析Win7 XAMPP apache无法启动的问题
2013/06/26 PHP
Discuz7.2版的faq.php SQL注入漏洞分析
2014/08/06 PHP
php返回字符串中所有单词的方法
2015/03/09 PHP
PHP中4种常用的抓取网络数据方法
2015/06/04 PHP
PHP数字前补0的自带函数sprintf 和number_format的用法(详解)
2017/02/06 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
jQuery 学习第六课 实现一个Ajax的TreeView
2010/05/17 Javascript
让IE6支持min-width和max-width的方法
2010/06/25 Javascript
jQuery中attr()方法用法实例
2015/01/05 Javascript
以jQuery中$.Deferred对象为例讲解promise对象是如何处理异步问题
2015/11/13 Javascript
基于jQuery的AJAX和JSON实现纯html数据模板
2016/08/09 Javascript
JS获取字符对应的ASCII码实例
2017/09/10 Javascript
浅谈Vue.nextTick 的实现方法
2017/10/25 Javascript
Webpack devServer中的 proxy 实现跨域的解决
2018/06/15 Javascript
vuejs使用axios异步访问时用get和post的实例讲解
2018/08/09 Javascript
微信小程序实现的一键复制功能示例
2019/04/24 Javascript
JS中比较两个Object数组是否相等方法实例
2019/11/11 Javascript
Javascript原型链及instanceof原理详解
2020/05/25 Javascript
mpvue 项目初始化及实现授权登录的实现方法
2020/07/20 Javascript
[02:22]《新闻直播间》2017年08月14日
2017/08/15 DOTA
Python无损音乐搜索引擎实现代码
2018/02/02 Python
Python第三方库h5py_读取mat文件并显示值的方法
2019/02/08 Python
pyqt5中QThread在使用时出现重复emit的实例
2019/06/21 Python
python聚类算法解决方案(rest接口/mpp数据库/json数据/下载图片及数据)
2019/08/28 Python
windows中安装Python3.8.0的实现方法
2019/11/19 Python
Python中使用socks5设置全局代理的方法示例
2020/04/15 Python
来自全球大都市的高级街头服饰:Pegador
2018/01/03 全球购物
Joseph官网:英国小众奢侈品牌
2019/05/17 全球购物
西班牙在线光学:Visual-Click
2020/06/22 全球购物
下面代码从性能上考虑,有什么问题
2015/04/03 面试题
2015年幼儿园新年寄语
2014/12/08 职场文书
道歉信范文
2015/05/12 职场文书
盲山观后感
2015/06/11 职场文书
四大名著读书笔记
2015/06/25 职场文书
「海贼王」112.9万粉丝纪念图标公布
2022/03/21 日漫