python with上下文管理
with上下文管理
class person:def __init__(self,name):self .name = name def __enter__(self):print('这是with定义的对象进到了enter方法中执行操作')return selfdef __exit__(self,exc_type,exc_value,exc_tb):print('''with对象在enter中执行完毕之后会返回对象,这是对象就会走到with方法中去执行当中的代码,在没有报错的情况下,执行完毕之后,程序就会进入到exit方法中,然后完成关闭.这就是with方法不用手动关闭的原理.''')with person('小红') as p:print(p.name)
总结:
- 程序在执行的时候
1.进到enter方法中执行,返回值为实例化的对象
2.返回对象之后,进入到with方法中去执行里面的代码
3.当没有异常发生的时候,顺利执行完成之后,对象就会进入到exit方法中去执行里面的代码
class person:def __init__(self,name):self .name = name def __enter__(self):print('这是with定义的对象进到了enter方法中执行操作')return selfdef __exit__(self,exc_type,exc_value,exc_tb):print('''with对象在enter中执行完毕之后会返回对象,这是对象就会走到with方法中去执行当中的代码,在没有报错的情况下,执行完毕之后,程序就会进入到exit方法中,然后完成关闭.这就是with方法不用手动关闭的原理.''')with person('小红') as p:print(p.name)result = 1/0print ('程序发生异常')
总结:
当程序在with代码块中执行遇到异常,那么异常下面的代码就不会被执行,程序就会立即跳转到exit方法中去执行.
class person:def __init__(self,name):self .name = name def __enter__(self):print('这是with定义的对象进到了enter方法中执行操作')return selfdef __exit__(self,exc_type,exc_value,exc_tb):print('''with对象在enter中执行完毕之后会返回对象,这是对象就会走到with方法中去执行当中的代码,在没有报错的情况下,执行完毕之后,程序就会进入到exit方法中,然后完成关闭.这就是with方法不用手动关闭的原理.''')return Truewith person('小红') as p:print(p.name)result = 1/0print ('程序发生异常')print('当exit方法返回值为True时,with里面的代码块异常下面的不再执行,但是在with语句外的下面的代码还是正常执行')
总结:
当exit方法执行返回的结果为true时,异常就会被隐藏掉了,所以后面的代码还是会被执行
python with上下文管理相关推荐
- Python with上下文管理及自定义上下文管理
Python with上下文管理及自定义上下文管理 一.上下文管理器 上下文管理器是对Context Manager的翻译 ,上下文是 context 直译的叫法,在程序中用来表示代码执行过程中所处的 ...
- python的上下文管理
说道上下文管理首先想到的就是这个: class MyResource:def __enter__(self):print("查询开始")return selfdef __exit_ ...
- python上下文管理关键字_理解 Python 的上下文管理器
任何 Python 教程,必然会讲解如何打开一个文件.而任何提到打开文件的地方,都必然会推荐用 with 来操作文件的读写.比如说这里有一篇非常优秀的教程,文中提到在 Python 中,文件读写是通过 ...
- python的上下文管理用哪个关键字_正确理解python中的关键字“with”与上下文管理器...
正确理解python中的关键字"with"与上下文管理器 来源:中文源码网 浏览: 次 日期:2018年9月2日 [下载文档: 正确理解python中的关键字&quo ...
- python进入上下文管理器_浅谈Python中with(上下文管理器)的用法
例子一 首先来看一段代码: classFoo(object):def __init__(self):print('实例化一个对象')def __enter__(self):print('进入')def ...
- Python 上下文管理器和 with 语句
1. 上下文管理器概念 什么是 Python 的上下文管理器(Context Managers)呢? 含有 __enter__ 和 __exit__ 方法的对象就是.上下文管理器存在的目的是管理 ...
- python意外退出_有趣的Python上下文管理器
阅读耗时:9分钟 目录 编写自定义上下文管理器 从生成器到上下文管理器 将上下文管理器编写为装饰器 嵌套式上下文管理器 组合式上下文管理器 利用用上下文管理器创建SQLAlchemy session ...
- python 计时器_Python上下文管理器的魔力
点击关注我哦 一篇文章带你了解Python上下文管理器的魔力 小编将为您准备一份很棒的Python上下文管理器使用指南,这将使您的代码更具可读性和可靠性,降低您的错误发生率. 资源管理器是我们在任何编 ...
- Python上下文管理器的魔力
点击关注我哦 一篇文章带你了解Python上下文管理器的魔力 小编将为您准备一份很棒的Python上下文管理器使用指南,这将使您的代码更具可读性和可靠性,降低您的错误发生率. 资源管理器是我们在任何编 ...
最新文章
- Quartz-DateBuilder解读
- 产品规划,要考虑哪些方面?
- 常见程序设计及编程开发问题解答
- 如何使用Dependabot保持环境最新
- 使用POI 读取 Excel 文件,读取手机号码 变成 1.3471022771E10
- 一、cadence ic 5141 ——软件下载地址以及常见错误
- LaTeX编写IEEE会议论文字体报错、且参考文献中会议/期刊的名字没有斜体的问题解决
- 猴子摘桃c语言程序,猴子摘桃c语言
- Linux固态硬盘 设置写入缓存,写入缓存策略怎么打开让SSD提高速度
- PSENet(Shape Robust Text Detection with Progressive Scale Expansion Network)论文详解
- 微信网页第三方登陆 获取用户信息 代码
- 最新微信hook二次开发c#源码介绍
- 个人如何搭建博客网站
- PostgreSQL t_bits计算方法
- Windows睡眠,CPU风扇仍然运转的问题
- java开发工程师面试自我介绍_Java程序员面试如何自我介绍HR这一关
- 第五天 01-ftp服务器使用及arp欺骗获取ftp账号密码
- 2022上半年系统集成项目管理师客观题参考答题解析(1)
- 股妖APP也妖 -- 与暴风魔镜相关
- 晨山资本王志飏:万物智联时代,智能企业的创新路径
热门文章
- 2022-2028年中国乳制品行业市场需求预测与投资战略规划分析报告
- 2022-2028年中国半导体用环氧塑封料(EMC)行业市场全景调查及投资前景分析报告
- 【微服务架构】SpringCloud之路由网关(zuul)
- 我爱自然语言处理bert ner chinese
- 本机无法访问虚拟机上的nignx
- 预测汽车级Linux专业技术的需求
- mysql sql w3cschool_SQL复习(w3school)笔记
- java jdk 环境变量配置(window 10 系统)
- display:inline-block 的使用
- scala函数式编程(二) scala基础语法介绍