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中使用HTML模版的教程
Apr 29 Python
使用Python的urllib和urllib2模块制作爬虫的实例教程
Jan 20 Python
Django的信号机制详解
May 05 Python
python遍历文件夹下所有excel文件
Jan 03 Python
Python中psutil的介绍与用法
May 02 Python
75条笑死人的知乎神回复,用60行代码就爬完了
May 06 Python
django如何实现视图重定向
Jul 24 Python
关于Python核心框架tornado的异步协程的2种方法详解
Aug 28 Python
python实现udp传输图片功能
Mar 20 Python
Django在Model保存前记录日志实例
May 14 Python
keras用auc做metrics以及早停实例
Jul 02 Python
python中time.ctime()实例用法
Feb 03 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
php中数据的批量导入(csv文件)
2006/10/09 PHP
PHP+MySQL5.0中文乱码解决方法
2006/11/20 PHP
PHP SEO优化之URL优化方法
2011/04/21 PHP
thinkphp3.0 模板中函数的使用
2012/11/13 PHP
PHP SOCKET编程详解
2015/05/22 PHP
PHP explode()函数的几个应用和implode()函数有什么区别
2015/11/05 PHP
PHP如何使用Memcached
2016/04/05 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
Thinkphp5+uploadify实现的文件上传功能示例
2018/05/26 PHP
浅谈Javascript面向对象编程
2011/11/15 Javascript
js 判断checkbox是否选中的操作方法
2012/11/09 Javascript
JS获取鼠标坐标的实例方法
2013/07/18 Javascript
js获取select标签选中值的两种方式
2014/01/09 Javascript
JS 对象(Object)和字符串(String)互转方法
2016/05/20 Javascript
jquery获取点击控件的绝对位置简单实例
2016/10/13 Javascript
js实现鼠标跟随运动效果
2020/08/02 Javascript
jQuery实现的简单获取索引功能示例
2018/06/04 jQuery
微信小程序购物车、父子组件传值及calc的注意事项总结
2018/11/14 Javascript
Vue2.x通用条件搜索组件的封装及应用详解
2019/05/28 Javascript
原生JS实现顶部导航栏显示按钮+搜索框功能
2019/12/25 Javascript
vue中实现图片压缩 file文件的方法
2020/05/28 Javascript
Python实现基于权重的随机数2种方法
2015/04/28 Python
Python多进程并发(multiprocessing)用法实例详解
2015/06/02 Python
对Python进行数据分析_关于Package的安装问题
2017/05/22 Python
python实现画圆功能
2018/01/25 Python
Python图片转换成矩阵,矩阵数据转换成图片的实例
2018/07/02 Python
详解Python3 对象组合zip()和回退方式*zip
2019/05/15 Python
全球航班旅行搜索网站:Cheapflights
2017/05/19 全球购物
navabi英国:设计师大码女装
2019/06/25 全球购物
俄罗斯在线手表和珠宝商店:AllTime
2019/09/28 全球购物
校三好学生主要事迹
2014/01/11 职场文书
战友聚会邀请函
2014/01/18 职场文书
英语专业个人求职信范文
2014/02/01 职场文书
小学感恩节活动策划方案
2014/10/06 职场文书
歌咏比赛口号大全
2015/12/25 职场文书
创业计划书之溜冰场
2019/10/25 职场文书