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+matplotlib实现动态绘制图片实例代码(交互式绘图)
Jan 20 Python
Python实现针对给定字符串寻找最长非重复子串的方法
Apr 21 Python
Python处理菜单消息操作示例【基于win32ui模块】
May 09 Python
分享Python切分字符串的一个不错方法
Dec 14 Python
Python3利用print输出带颜色的彩色字体示例代码
Apr 08 Python
python实现最大优先队列
Aug 29 Python
python中调试或排错的五种方法示例
Sep 12 Python
numpy 矩阵形状调整:拉伸、变成一位数组的实例
Jun 18 Python
django数据模型中null和blank的区别说明
Sep 02 Python
聊聊python中的循环遍历
Sep 07 Python
简单了解python关键字global nonlocal区别
Sep 21 Python
pycharm配置QtDesigner的超详细方法
Jan 25 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
Uchome1.2 1.5 代码学习 common.php
2009/04/24 PHP
PHP 引用文件技巧
2010/03/02 PHP
用php制作简单分页(从数据库读取记录)的方法详解
2013/05/04 PHP
PHP错误WARNING: SESSION_START() [FUNCTION.SESSION-START]解决方法
2014/05/04 PHP
PHP程序员常见的40个陋习,你中了几个?
2014/11/20 PHP
php堆排序实现原理与应用方法
2015/01/03 PHP
用JavaScript对JSON进行模式匹配(Part 1-设计)
2010/07/17 Javascript
js简单实现HTML标签Select联动带跳转
2013/10/23 Javascript
jquery ajax,ashx,json的用法总结
2014/02/12 Javascript
js密码强度实时检测代码
2016/03/02 Javascript
基于JS实现数字+字母+中文的混合排序方法
2016/06/06 Javascript
喜大普奔!jQuery发布 3.0 最终版
2016/06/12 Javascript
javascript高仿热血传奇游戏实现代码
2018/02/22 Javascript
Nuxt.js实现一个SSR的前端博客的示例代码
2019/09/06 Javascript
js计算最大公约数和最小公倍数代码实例
2019/09/11 Javascript
Python解析xml中dom元素的方法
2015/03/12 Python
Python的Flask框架中Flask-Admin库的简单入门指引
2015/04/07 Python
Python的Flask开发框架简单上手笔记
2015/11/16 Python
浅谈Python中用datetime包进行对时间的一些操作
2016/06/23 Python
python使用xpath中遇到:到底是什么?
2018/01/04 Python
python中将字典形式的数据循环插入Excel
2018/01/16 Python
django配置连接数据库及原生sql语句的使用方法
2019/03/03 Python
Python中的支持向量机SVM的使用(附实例代码)
2019/06/26 Python
使用keras实现非线性回归(两种加激活函数的方式)
2020/07/05 Python
Python unittest如何生成HTMLTestRunner模块
2020/09/08 Python
python自动生成sql语句的脚本
2021/02/24 Python
几款主流好用的富文本编辑器(所见即所得常用编辑器)介绍
2021/03/17 Javascript
canvas画布实现手写签名效果的示例代码
2019/04/23 HTML / CSS
审计工作个人的自我评价
2013/12/25 职场文书
2014年元旦感言
2014/03/06 职场文书
医疗专业毕业生求职信
2014/08/28 职场文书
运动会稿件100字
2014/09/24 职场文书
班级管理经验交流材料
2015/11/02 职场文书
读《钢铁是怎样炼成的》有感:百炼方成钢
2019/11/05 职场文书
Python使用UDP实现720p视频传输的操作
2021/04/24 Python
Ubuntu Server 安装Tomcat并配置systemctl
2022/04/28 Servers