Python考试题--第53道题目--怎样将with语句用以一个自定义类--2022年04月08日

原创
小哥 3年前 (2022-10-29) 阅读数 6 #大杂烩

目录

一、with声明的作用是:

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


一、with声明的作用是:

1它适合于访问资源,以确保无论在使用过程中是否有任何异常,都会执行必要的“清理”工作。

2释放资源:文件在使用后关闭,线程中的锁被自动获取和释放。

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

# 介绍魔术功能:__enter__   __exit__
class Myclass:
    def __enter__(self):
        print(__enter__ is call!)
        return self
    def process1(self):
        print(process1)
    def process2(self):
        a = 1/0
        print(process2)
    def __exit__(self,exc_type,exc_value,traceback):
        print(__exit__ is call!)
        print(ftype:{exc_type})
        print(fvalue:{exc_value})
        print(ftrace:{traceback})

如果直接调用自定义类,肯定会报告错误。

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

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

with Myclass() as mc:
    mc.process1()
    mc.process2()

将出现以下提示消息:

"""
__enter__ is call!
process1
__exit__ is call!
type:
value:division by zero
trace:
"""

无论在执行过程中是否引发异常,下面的程序都将继续。

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除