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的Flask框架中web表单的教程
Apr 20 Python
Python数据类型详解(二)列表
May 08 Python
详解python之配置日志的几种方式
May 22 Python
Python原始字符串与Unicode字符串操作符用法实例分析
Jul 22 Python
Python之批量创建文件的实例讲解
May 10 Python
python实现windows下文件备份脚本
May 27 Python
Django 实现购物车功能的示例代码
Oct 08 Python
不到40行代码用Python实现一个简单的推荐系统
May 10 Python
如何使用Python 打印各种三角形
Jun 28 Python
Python中的X[:,0]、X[:,1]、X[:,:,0]、X[:,:,1]、X[:,m:n]和X[:,:,m:n]
Feb 13 Python
python变量的作用域是什么
May 26 Python
python和anaconda的区别
May 06 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
Yii2使用小技巧之通过 Composer 添加 FontAwesome 字体资源
2014/06/22 PHP
深入分析PHP引用(&)
2014/09/04 PHP
thinkPHP5.0框架验证码调用及点击图片刷新简单实现方法
2018/09/07 PHP
PHP使Laravel为JSON REST API返回自定义错误的问题
2018/10/16 PHP
找到一点可怜的关于dojo资料,谢谢作者!
2006/12/06 Javascript
javascript的回调函数应用示例
2014/02/20 Javascript
html的DOM中document对象forms集合用法实例
2015/01/21 Javascript
JavaScript为事件句柄绑定监听函数实例详解
2015/12/15 Javascript
原生js实现class的添加和删除简单代码
2016/07/12 Javascript
JavaScript——DOM操作——Window.document对象详解
2016/07/14 Javascript
基于JSON格式数据的简单jQuery幻灯片插件(jquery-slider)
2016/08/10 Javascript
vue 动态改变静态图片以及请求网络图片的实现方法
2018/02/07 Javascript
webpack4之SplitChunksPlugin使用指南
2018/06/12 Javascript
Vue项目部署的实现(阿里云+Nginx代理+PM2)
2019/03/26 Javascript
JavaScript计算正方形面积
2019/11/26 Javascript
python判断端口是否打开的实现代码
2013/02/10 Python
python实现的一个p2p文件传输实例
2014/06/04 Python
django中的HTML控件及参数传递方法
2018/03/20 Python
python修改list中所有元素类型的三种方法
2018/04/09 Python
详解如何将python3.6软件的py文件打包成exe程序
2018/10/09 Python
Python 正则表达式匹配字符串中的http链接方法
2018/12/25 Python
python lambda函数及三个常用的高阶函数
2020/02/05 Python
TensorFlow实现保存训练模型为pd文件并恢复
2020/02/06 Python
基于python实现破解滑动验证码过程解析
2020/05/28 Python
Vans荷兰官方网站:美国南加州的原创极限运动潮牌
2018/01/23 全球购物
char型变量中能不能存贮一个中文汉字
2015/07/08 面试题
自荐信格式的六要素
2013/09/21 职场文书
汽车装潢店创业计划书范文
2014/02/05 职场文书
《燕子》教学反思
2014/02/18 职场文书
和解协议书
2014/04/16 职场文书
党员干部反四风民主生活会对照检查材料思想汇报
2014/10/12 职场文书
酒店辞职信怎么写
2015/02/27 职场文书
导游词之徐州-云龙山
2019/09/29 职场文书
导游词之晋城蟒河
2019/12/12 职场文书
pytorch--之halfTensor的使用详解
2021/05/24 Python
Windows server 2012搭建FTP服务器
2022/04/29 Servers