Python with语句用法原理详解


Posted in Python onJuly 03, 2020

with 用法理解

Overview

with 与with之后的object一起,起到了抛出异常和单独生成一个空间让代码在空间里运行的效果。

实验代码

class A:
  def __init__(self):
    self.a = 0

  def __enter__(self):
    print('enter')
  def __exit__(self, exc_type, exc_val, exc_tb):
    print('exit')
if __name__ == '__main__':

  a = A()
  with a:
    print('first step')
    print(1/0)
    print('last setp')
  print('continue running')
  print('continue running')
  print('continue running')
  print('continue running')

上述代码输出结果为

enter
first step
exit
ZeroDivisionError: division by zero

代码理解

根据上述代码的测试结果可以看出:

with语句先运行,with之后对象的__enter__()方法

然后运行with空间的代码

1.1. 当with空间代码出错后,会直接运行__exit__()方法,然后抛出异常

1.2 当with空间代码没有错误时,程序按顺序__enter()__>> 逻辑语句>>exit()>>之后的代码继续运行

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python网络编程示例(客户端与服务端)
Apr 24 Python
Python导出DBF文件到Excel的方法
Jul 25 Python
jupyter安装小结
Mar 13 Python
深入解答关于Python的11道基本面试题
Apr 01 Python
scrapy爬虫实例分享
Dec 28 Python
python实现TF-IDF算法解析
Jan 02 Python
django中静态文件配置static的方法
May 20 Python
PyQt5实现让QScrollArea支持鼠标拖动的操作方法
Jun 19 Python
Python3简单爬虫抓取网页图片代码实例
Aug 26 Python
DataFrame.to_excel多次写入不同Sheet的实例
Dec 02 Python
PyTorch中的拷贝与就地操作详解
Dec 09 Python
python绘图模块之利用turtle画图
Feb 12 Python
Keras搭建自编码器操作
Jul 03 #Python
python 识别登录验证码图片功能的实现代码(完整代码)
Jul 03 #Python
python图片验证码识别最新模块muggle_ocr的示例代码
Jul 03 #Python
keras topN显示,自编写代码案例
Jul 03 #Python
python如何使用代码运行助手
Jul 03 #Python
Python 3.10 的首个 PEP 诞生,内置类型 zip() 迎来新特性(推荐)
Jul 03 #Python
python3 简单实现组合设计模式
Jul 02 #Python
You might like
discuz的php防止sql注入函数
2011/01/17 PHP
Yii框架中 find findAll 查找出制定的字段的方法对比
2014/09/10 PHP
php通过smtp邮件验证登陆的方法
2016/05/11 PHP
Chrome中模态对话框showModalDialog返回值问题的解决方法
2010/05/25 Javascript
利用javascript的面向对象的特性实现限制试用期
2011/08/04 Javascript
js动态设置div的值下例子
2013/10/29 Javascript
js操作label给label赋值及取label的值示例
2013/11/07 Javascript
使用jquery选择器如何获取父级元素、同级元素、子元素
2014/05/14 Javascript
基于JS实现翻书效果的页面切换样式
2017/02/16 Javascript
jQuery点击头像上传并预览图片
2017/02/23 Javascript
vue监听滚动事件实现滚动监听
2017/04/11 Javascript
BootStrap 标题设置跨行无效的解决方法
2017/10/25 Javascript
解决js相同的正则多次调用test()返回的值却不同的问题
2018/10/10 Javascript
详解钉钉小程序组件之自定义模态框(弹窗封装实现)
2020/03/07 Javascript
[01:02:10]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第一局
2016/02/26 DOTA
[28:57]EG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/16 DOTA
二种python发送邮件实例讲解(python发邮件附件可以使用email模块实现)
2013/12/03 Python
python计算列表内各元素的个数实例
2018/06/29 Python
在双python下设置python3为默认的方法
2018/10/31 Python
Python爬虫实现获取动态gif格式搞笑图片的方法示例
2018/12/24 Python
Python模拟百度自动输入搜索功能的实例
2019/02/14 Python
opencv与numpy的图像基本操作
2019/03/08 Python
Python使用微信itchat接口实现查看自己微信的信息功能详解
2019/08/22 Python
python中struct模块之字节型数据的处理方法
2019/08/27 Python
免费获得微软MCSD证书赶快行动吧!
2012/11/13 HTML / CSS
Columbia Sportswear法国官网:全球户外品牌
2020/09/25 全球购物
linux面试题参考答案(5)
2014/09/01 面试题
介绍一下Python下range()函数的用法
2013/11/07 面试题
大学生学习自我评价
2014/01/13 职场文书
反对邪教标语
2014/06/30 职场文书
租房协议书范文
2014/08/20 职场文书
村党支部对照检查材料思想汇报
2014/09/28 职场文书
2014年高一班主任工作总结
2014/12/05 职场文书
导游词400字
2015/02/13 职场文书
中秋联欢会主持词
2015/07/04 职场文书
python 使用tkinter与messagebox写界面和弹窗
2022/03/20 Python