python的with关键字

python的with关键字,第1张

with表达式其实是try-finally的简写形式。但是又不是全相同。

其中的context是一个表达式,返回的是一个对象,var用来保存context表达式返回的对象,可以有单个或者多个返回值。

表升芦达式open('1.txt')返回是一个_io.TextIOWrapper 类型的变量用f接受到。在with语句块中就可以使用这个变量 *** 作文件。执行with这个结构之后。f会自动关闭。相当于自带了一个finally。

但是吵颤带with本身并没有异常捕获的功能,但是如果发生了运行时异常,它照样可以关闭文件释放资源。

这个例子可以看出with没有捕获异常的功能。

这个例子可以看出with发生了异常也会关闭程序

自定义类必须包含上述几个方法才能正确使用with关键字。

下面我们故意加一个NameError

即使程序发生了错误,python解释器终止了我们的程序,但是我们的洞茄类 还是顺利关闭了。

1、文件 *** 作。2、进程线程之间互斥对象。3、支持上下文其他对象

方法1:采用sys.exit(0),正常终运迅止程序,从图中胡山可以看到,程序终止后shell运行不受影响。

相关推荐:《Python教程》

方法2:采用os._exit(0)关闭整个shell,从图中看到,调用sys._exit(0)后整个shell都重启了(RESTART Shell)。

方法3:采用Ctrl+C快捷键,强制终止程序执行,可以看到,程序由“KeyboardInterrupt”(键盘中断)终止了旁做此,且不影响shell继续执行。

方法4:最简单粗暴的终止程序方法莫过于点击shell右上角的“x”,整个shell都终止了,程序果断也终止!

用来创建一个可以在使用结束后自动森做灶关闭的对象,前提是此扮胡梁这个class实现了__enter__() 和 __exit__() 方法.

给你个更详细的讲解IBM developerworks


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12462933.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存