目标:掌握利用装饰器装饰函数的方法实现 with 上下文管理操作文件(读取文件内所有数据)!


    一:利用装饰器装饰函数的方法实现 with 上下文管理操作文件(读取文件内所有数据)!

    实现关键字:

    yield:函数内 yield上方为上文,下方为下文,调用函数时,第一次调用执行到 yield 处,第二次执行从 yield 继续执行!

    yield有返回数据以及退出函数的功能

    contextlib 库里面的装饰器 contextmanager :利用 contextmanager 装饰器装饰写好的函数即可实现 with 上下文管理操作文件

    实现步骤:

    第一步:定义一个函数,传递两个参数即文件名以及文件打开方式

    第二步:在函数内部打开指定文件,并用yield 返回打开文件的对象,yield上方的也就是上文

    第三步:在 yield 下方对打开的文件对象进行关闭!也就是上下文管理的下文

    第四步:导入 contextlib 模块里面的装饰器 contextmanager

    第五步:利用 @contextmanager 装饰写好的函数

    第六步:利用 with 函数名(“文件名”,“打开方式”) as file :
    result = file.read()
    print(result)
    读取指定文件的所有数据

    代码体验:

    image.png