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 相关文章推荐
pydev使用wxpython找不到路径的解决方法
Feb 10 Python
python三元运算符实现方法
Dec 17 Python
跟老齐学Python之使用Python操作数据库(1)
Nov 25 Python
python常见数制转换实例分析
May 09 Python
基于Python代码编辑器的选用(详解)
Sep 13 Python
Django如何配置mysql数据库
May 04 Python
利用Python半自动化生成Nessus报告的方法
Mar 19 Python
python 爬取古诗文存入mysql数据库的方法
Jan 08 Python
检测tensorflow是否使用gpu进行计算的方式
Feb 03 Python
浅谈对python中if、elif、else的误解
Aug 20 Python
Python中对象的比较操作==和is区别详析
Feb 12 Python
使用Python的开发框架Brownie部署以太坊智能合约
May 28 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相关资料
2006/10/09 PHP
一个简单且很好用的php分页类
2013/10/26 PHP
PHP实现获取中英文首字母
2015/06/19 PHP
php 无限分类 树形数据格式化代码
2016/10/11 PHP
PHP第三方登录―QQ登录实现方法
2017/02/06 PHP
PHP+MariaDB数据库操作基本技巧备忘总结
2018/05/21 PHP
PHP的HTTP客户端Guzzle简单使用方法分析
2019/10/30 PHP
使用EXT实现无刷新动态调用股票信息
2008/11/01 Javascript
javascript 当前日期加(天、周、月、年)
2009/08/09 Javascript
javascript利用初始化数据装配模版的实现代码
2010/11/17 Javascript
javascript中使用replaceAll()函数实现字符替换的方法
2010/12/25 Javascript
Script的加载方法小结
2011/01/12 Javascript
js控制CSS样式属性语法对照表
2012/12/11 Javascript
jQuery中add()方法用法实例
2015/01/08 Javascript
判断iOS、Android以及PC端的示例代码
2018/11/15 Javascript
vue中$nextTick的用法讲解
2019/01/17 Javascript
js实现图片放大并跟随鼠标移动特效
2019/01/18 Javascript
基于JS实现前端压缩上传图片的实例代码
2019/05/14 Javascript
微信小程序身份证验证方法实现详解
2019/06/28 Javascript
vue中使用v-for时为什么不能用index作为key
2020/04/04 Javascript
angular共享依赖的解决方案分享
2020/10/15 Javascript
浅谈nuxtjs校验登录中间件和混入(mixin)
2020/11/06 Javascript
[05:03]显微镜下的DOTA2第十期——Ti3豪之超神幽鬼
2014/06/23 DOTA
使用python调用zxing库生成二维码图片详解
2017/01/10 Python
Python的时间模块datetime详解
2017/04/17 Python
Django框架之登录后自定义跳转页面的实现方法
2019/07/18 Python
Python count函数使用方法实例解析
2020/03/23 Python
Python用5行代码实现批量抠图的示例代码
2020/04/14 Python
Pycharm自动添加文件头注释和函数注释参数的方法
2020/10/23 Python
纯HTML+CSS3制作导航菜单(附源码)
2013/04/24 HTML / CSS
HTML5拖放功能_动力节点Java学院整理
2017/07/13 HTML / CSS
美国NBA官方商店:NBA Store
2019/04/12 全球购物
初二物理教学反思
2014/01/29 职场文书
和解协议书
2014/04/16 职场文书
化工厂员工工作总结
2015/10/15 职场文书
Nginx安装配置详解
2022/06/25 Servers