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实现去除代码前行号的方法
Mar 10 Python
使用SAE部署Python运行环境的教程
May 05 Python
Python中模块string.py详解
Mar 12 Python
详解如何用django实现redirect的几种方法总结
Nov 22 Python
python对文件目录的操作方法实例总结
Jun 24 Python
python处理大日志文件
Jul 23 Python
Python实现TCP通信的示例代码
Sep 09 Python
Python求正态分布曲线下面积实例
Nov 20 Python
python科学计算之narray对象用法
Nov 25 Python
tensorflow 分类损失函数使用小记
Feb 18 Python
Python机器学习之KNN近邻算法
May 14 Python
Pytorch中使用ImageFolder读取数据集时忽略特定文件
Mar 23 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来检测proxy
2006/10/09 PHP
php checkbox复选框值的获取与checkbox默认值输出方法
2010/05/15 PHP
php中current、next与reset函数用法实例
2014/11/17 PHP
php集成环境xampp中apache无法启动问题解决方案
2014/11/18 PHP
mac系统下为 php 添加 pcntl 扩展
2016/08/28 PHP
PHP实现十进制、二进制、八进制和十六进制转换相关函数用法分析
2017/04/25 PHP
js实现简单模态窗口,背景灰显
2008/11/14 Javascript
JS动态获取当前时间,并写到特定的区域
2013/05/03 Javascript
页面定时刷新(1秒刷新一次)
2013/11/22 Javascript
jQuery使用$.get()方法从服务器文件载入数据实例
2015/03/25 Javascript
javascript数组去重方法汇总
2015/04/23 Javascript
JS实现仿新浪微博发布内容为空时提示功能代码
2015/08/19 Javascript
【JS+CSS3】实现带预览图幻灯片效果的示例代码
2016/03/17 Javascript
微信小程序 form组件详解
2016/10/25 Javascript
使用 bootstrap modal遇到的问题小结
2016/11/09 Javascript
通过jsonp获取json数据实现AJAX跨域请求
2017/01/22 Javascript
Linux使用Node.js建立访问静态网页的服务实例详解
2017/03/21 Javascript
基于jquery日历价格、库存等设置插件
2020/07/05 jQuery
jQuery之动画ajax事件(实例讲解)
2017/07/18 jQuery
小程序视频或音频自定义可拖拽进度条的示例代码
2018/09/30 Javascript
vue实现多条件和模糊搜索功能
2019/05/28 Javascript
React中Ref 的使用方法详解
2020/04/28 Javascript
Javascript新手入门之字符串拼接与变量的应用
2020/12/03 Javascript
如何使用RoughViz可视化Vue.js中的草绘图表
2021/01/30 Vue.js
Tensorflow环境搭建的方法步骤
2018/02/07 Python
python 字符串和整数的转换方法
2018/06/25 Python
Python 实现取矩阵的部分列,保存为一个新的矩阵方法
2018/11/14 Python
Python除法之传统除法、Floor除法及真除法实例详解
2019/05/23 Python
python中dict()的高级用法实现
2019/11/13 Python
什么是Python中的匿名函数
2020/06/02 Python
Python常用模块函数代码汇总解析
2020/08/31 Python
财务方面个人工作的自我评价
2013/12/28 职场文书
学校献爱心活动总结
2014/07/08 职场文书
2014年度安全生产目标管理责任书
2014/07/25 职场文书
物业保洁员岗位职责
2015/02/13 职场文书
法制教育主题班会
2015/08/13 职场文书