Python with语句用法原理详解

 更新时间:2020年07月03日 09:22:40   作者:LexiCalibur  
这篇文章主要介绍了Python with语句用法原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

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()>>之后的代码继续运行

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

相关文章

  • pycharm 添加解释器的方法步骤

    pycharm 添加解释器的方法步骤

    这篇文章主要介绍了pycharm 添加解释器的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • Anaconda配置pytorch-gpu虚拟环境的图文教程

    Anaconda配置pytorch-gpu虚拟环境的图文教程

    这篇文章主要介绍了Anaconda配置pytorch-gpu虚拟环境步骤整理,本文分步骤通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • Python导入不同文件夹中文件的方法详解

    Python导入不同文件夹中文件的方法详解

    在写python程序的时候,经常会用到引入其他文件夹里的py文件,下面这篇文章主要给大家介绍了关于Python导入不同文件夹中文件的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-06-06
  • python实现凯撒密码、凯撒加解密算法

    python实现凯撒密码、凯撒加解密算法

    这篇文章主要介绍了python语言编程实现凯撒密码、凯撒加解密算法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • 详解Python之可迭代对象,迭代器和生成器

    详解Python之可迭代对象,迭代器和生成器

    这篇文章主要为大家介绍了Python之可迭代对象,迭代器和生成器,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12
  • python中and和or逻辑运算符的用法示例

    python中and和or逻辑运算符的用法示例

    python中的逻辑运算符有两种返回值,python运算符除了能操作bool类型表达式,还能操作其他所有类型的表达式,这篇文章主要给大家介绍了关于python中and和or逻辑运算符用法的相关资料,需要的朋友可以参考下
    2022-01-01
  • Python跨文件全局变量的实现方法示例

    Python跨文件全局变量的实现方法示例

    我们在使用Python编写应用的时候,有时候会遇到多个文件之间传递同一个全局变量的情况。所以下面这篇文章主要给大家介绍了关于Python跨文件全局变量的实现方法,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-12-12
  • 分享Python开发中要注意的十个小贴士

    分享Python开发中要注意的十个小贴士

    不管是python开发还是其他什么语言的开发,如果在开发中我们能掌握一些有用的贴士和技巧,那么肯定会大大提高我们的开发效率,今天小编和大家分享的就是python开发中,一些初学这门语言常常会犯的错误,一起来看看吧。
    2016-08-08
  • python引入不同文件夹下的自定义模块方法

    python引入不同文件夹下的自定义模块方法

    今天小编就为大家分享一篇python引入不同文件夹下的自定义模块方法。具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • Pytorch生成随机数Tensor的方法汇总

    Pytorch生成随机数Tensor的方法汇总

    这篇文章主要介绍了Pytorch生成随机数Tensor的方法汇总,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09

最新评论