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实现爬取逐浪小说的方法
Jul 07 Python
Python使用剪切板的方法
Jun 06 Python
Python初学时购物车程序练习实例(推荐)
Aug 08 Python
利用numpy实现一、二维数组的拼接简单代码示例
Dec 15 Python
Python实现接受任意个数参数的函数方法
Apr 21 Python
Python获取航线信息并且制作成图的讲解
Jan 03 Python
python面向对象 反射原理解析
Aug 12 Python
python flask中动态URL规则详解
Nov 22 Python
Django实现内容缓存实例方法
Jun 30 Python
python openssl模块安装及用法
Dec 06 Python
Pandas对每个分组应用apply函数的实现
Dec 13 Python
numpy数据类型dtype转换实现
Apr 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
PHP脚本的10个技巧(6)
2006/10/09 PHP
使用 MySQL 开始 PHP 会话
2006/12/21 PHP
PHPUnit PHP测试框架安装方法
2011/03/23 PHP
php不使用copy()函数复制文件的方法
2015/03/13 PHP
php each 返回数组中当前的键值对并将数组指针向前移动一步实例
2016/11/22 PHP
php写app用的框架整理
2019/09/29 PHP
jQuery固定浮动侧边栏实现思路及代码
2014/09/28 Javascript
开源的javascript项目Kissy介绍
2014/11/28 Javascript
javascript RegExp 使用说明
2016/05/21 Javascript
JavaScript html5利用FileReader实现上传功能
2020/03/27 Javascript
微信小程序使用radio显示单选项功能【附源码下载】
2017/12/11 Javascript
基于Vue开发数字输入框组件
2017/12/19 Javascript
JS运动特效之完美运动框架实例分析
2018/01/24 Javascript
vue组件实现进度条效果
2018/06/06 Javascript
ES6中定义类和对象的方法示例
2019/07/31 Javascript
vue element 生成无线级左侧菜单的实现代码
2019/08/21 Javascript
JavaScript实现简单计算器功能
2019/12/19 Javascript
原生JS与JQ获取元素的区别详解
2020/02/13 Javascript
Django框架中数据的连锁查询和限制返回数据的方法
2015/07/17 Python
使用Python读取大文件的方法
2018/02/11 Python
Python中的self用法详解
2019/08/06 Python
解决tensorflow由于未初始化变量而导致的错误问题
2020/01/06 Python
Python Numpy,mask图像的生成详解
2020/02/19 Python
python实现斗地主分牌洗牌
2020/06/22 Python
详解python 内存优化
2020/08/17 Python
大学生新闻专业个人自我评价
2013/11/12 职场文书
迟到早退检讨书
2014/02/10 职场文书
护士感人事迹
2014/05/01 职场文书
关于环保的活动方案
2014/08/25 职场文书
基层党组织建设整改方案
2014/09/16 职场文书
总经理岗位职责范本
2015/04/01 职场文书
高考诚信考试承诺书
2015/04/29 职场文书
毕业班工作总结
2015/08/10 职场文书
iPhone13 Pro外观确定,升级4800万镜头,4月20日发新品
2021/04/15 数码科技
九大龙王魂骨,山龙王留下躯干骨,榜首死的最憋屈(被捏碎)
2022/03/18 国漫
MySQ InnoDB和MyISAM存储引擎介绍
2022/04/26 MySQL