其中的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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)