Python with语句用法原理详解
with用法理解
Overview
with与with之后的object一起,起到了抛出异常和单独生成一个空间让代码在空间里运行的效果。
实验代码
classA: 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() witha: print('firststep') print(1/0) print('lastsetp') print('continuerunning') print('continuerunning') print('continuerunning') print('continuerunning')
上述代码输出结果为
enter
firststep
exit
ZeroDivisionError:divisionbyzero
代码理解
根据上述代码的测试结果可以看出:
with语句先运行,with之后对象的__enter__()方法
然后运行with空间的代码
1.1.当with空间代码出错后,会直接运行__exit__()方法,然后抛出异常
1.2当with空间代码没有错误时,程序按顺序__enter()__>>逻辑语句>>exit()>>之后的代码继续运行
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。