当前位置:   article > 正文

Python面试题--第53道题目--如何将with语句用于一个自定义的类--2022年04月08日_python with 自定义类

python with 自定义类

目录

一、with语句的作用:

二、将with语句用于自定义的类:


一、with语句的作用:

1、适用于对资源进行访问的场合,确保不管使用过程中是否发生异常都会执行必要的“清理”工作。

2、释放资源:文件使用之后关闭、线程中的锁自动获取、释放。

二、将with语句用于自定义的类:

  1. # 引入魔法函数:__enter__ __exit__
  2. class Myclass:
  3. def __enter__(self):
  4. print('__enter__ is call!')
  5. return self
  6. def process1(self):
  7. print('process1')
  8. def process2(self):
  9. a = 1/0
  10. print('process2')
  11. def __exit__(self,exc_type,exc_value,traceback):
  12. print('__exit__ is call!')
  13. print(f'type:{exc_type}')
  14. print(f'value:{exc_value}')
  15. print(f'trace:{traceback}')

如果是直接调用自定义的类,必然会报错。

  1. mm = Myclass()
  2. mm.process2()
  3. # ZeroDivisionError: division by zero

如果使用with语句调用自定义的类:

  1. with Myclass() as mc:
  2. mc.process1()
  3. mc.process2()

会有如下的提示信息:

  1. """
  2. __enter__ is call!
  3. process1
  4. __exit__ is call!
  5. type:<class 'ZeroDivisionError'>
  6. value:division by zero
  7. trace:<traceback object at 0x0000027C8DF8ACC8>
  8. """

无论执行过程中是否异常抛出,都会继续执行下面的程序。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/183123
推荐阅读
相关标签
  

闽ICP备14008679号