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之玩转字符串(1)
Sep 14 Python
Python入门篇之函数
Oct 20 Python
python3.6使用pymysql连接Mysql数据库
May 25 Python
python 批量修改/替换数据的实例
Jul 25 Python
python opencv实现切变换 不裁减图片
Jul 26 Python
5分钟 Pipenv 上手指南
Dec 20 Python
python 获取页面表格数据存放到csv中的方法
Dec 26 Python
python实现控制COM口的示例
Jul 03 Python
Series和DataFrame使用简单入门
Nov 13 Python
Python多进程编程常用方法解析
Mar 26 Python
python+excel接口自动化获取token并作为请求参数进行传参操作
Nov 10 Python
Django基于Models定制Admin后台实现过程解析
Nov 11 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导出中文内容excel文件类实例
2015/07/06 PHP
ThinkPHP中类的构造函数_construct()与_initialize()的区别详解
2017/03/13 PHP
laravel 5异常错误:FatalErrorException in Handler.php line 38的解决
2017/10/12 PHP
PHP receiveMail实现收邮件功能
2018/04/25 PHP
addRule在firefox下的兼容写法
2006/11/30 Javascript
jQuery html() in Firefox (uses .innerHTML) ignores DOM changes
2010/03/05 Javascript
关于jQuery的inArray 方法介绍
2011/10/08 Javascript
js中更短的 Array 类型转换
2011/10/30 Javascript
jquery实现输入框动态增减的实例代码
2013/07/14 Javascript
JS将表单导出成EXCEL的实例代码
2013/11/11 Javascript
Javascript类型转换的规则实例解析
2016/02/23 Javascript
javascript动画之模拟拖拽效果篇
2016/09/26 Javascript
微信小程序 条件渲染详解
2016/10/09 Javascript
Django1.7+JQuery+Ajax验证用户注册集成小例子
2017/04/08 jQuery
js Date()日期函数浏览器兼容问题解决方法
2017/09/12 Javascript
Angular实现的内置过滤器orderBy排序与模糊查询功能示例
2017/12/29 Javascript
浅谈MUI框架中加载外部网页或服务器数据的方法
2018/01/31 Javascript
Element Badge标记的使用方法
2020/07/27 Javascript
python tensorflow学习之识别单张图片的实现的示例
2018/02/09 Python
Python基于pycrypto实现的AES加密和解密算法示例
2018/04/10 Python
解决Python requests库编码 socks5代理的问题
2018/05/07 Python
python实现寻找最长回文子序列的方法
2018/06/02 Python
Python定义一个函数的方法
2020/06/15 Python
scrapy redis配置文件setting参数详解
2020/11/18 Python
html5-websocket基于远程方法调用的数据交互实现
2012/12/04 HTML / CSS
马来西亚网上购物:Youbeli
2018/03/30 全球购物
杭州SQL浙江浙大网新恩普软件有限公司
2013/07/27 面试题
迎新晚会邀请函
2014/02/01 职场文书
会计师职业生涯规划范文
2014/02/18 职场文书
丧事主持词大全
2014/04/02 职场文书
2014年学校法制宣传日活动总结
2014/11/01 职场文书
2014年发展党员工作总结
2014/11/12 职场文书
旗帜观后感
2015/06/08 职场文书
经典爱情感言
2015/08/03 职场文书
python中%格式表达式实例用法
2021/06/18 Python
java中重写父类方法加不加@Override详解
2021/06/21 Java/Android