美文网首页
Python 进阶——什么是上下文管理器

Python 进阶——什么是上下文管理器

作者: 猿小军 | 来源:发表于2020-12-10 18:12 被阅读0次

错误读取文件

# 打开文件
f = open('file.txt')
for line in f:
    # 读取文件内容 执行其他操作
    # do_something...
# 关闭文件
f.close()

java思维读取文件

f = open('file.txt')
try:
    for line in f:
        # 读取文件内容 执行其他操作
        # do_something...
finally:
    # 保证关闭文件
    f.close()

使用with读取文件

with open('file.txt') as f:
    for line in f:
        # do_something...

上下文管理器语法

with context_expression [as target(s)]:
 with-body

一个类在 Python 中,只要实现以下方法,就实现了「上下文管理器协议」:
enter:在进入 with 语法块之前调用,返回值会赋值给 with 的 target
exit:在退出 with 语法块时调用,一般用作异常处理

contextlib模块可简化上下文管理器协议


from contextlib import contextmanager
@contextmanager
def test():
    print('before')
    yield 'hello'
    print('after')
with test() as t:
    print(t)
# Output:
# before
# hello
# after

相关文章

  • Python上下文管理器和with块

    python中with语句用起来很方便,那这后边的原理就是python中的上下文管理器。 1.什么是上下文管理器 ...

  • python 上下文管理器

    一、什么是上下文管理器? 上下文管理器类型是python的内置类型之一,上下文管理器的定义:允许用户自定义类来定义...

  • python上下文管理

    什么是上下文管理 上下文:context的直译, 指的是代码执行过程中的前后状态上下文管理器:python上下文管...

  • Python 进阶——什么是上下文管理器

    错误读取文件 java思维读取文件 使用with读取文件 上下文管理器语法 一个类在 Python 中,只要实现以...

  • 算法面试 - 问题记录

    python上下文管理器,装饰器? (1)上下文管理器知乎链接:https://zhuanlan.zhihu.co...

  • Python的上下文管理器

    什么是上下文管理器 上下文管理器是一个对象,它定义了在执行 with 语句时要建立的运行时上下文。 上下文管理器处...

  • Python学习打call第三十一天:上下文管理器

    1.什么是上下文管理 上下文管理器是一个包装任意代码块的对象,上下文管理器保证进入上下文管理器时,每次代码执行的一...

  • python中上下文管理器

    什么是上下文管理器? 代码的环境就是上下文,实现了上下文管理器协议的类产生的实例就是上下文管理器对象。在类中声名e...

  • Python中上下文管理器及其实现原理

    什么是上下文管理器? 我们常见的上下文管理器with open('test.txt', 'w') as f:。wi...

  • Python上下文管理器

    Context Manager 文档翻译 Python with语句支持上下文管理器定义的运行时上下文概念(run...

网友评论

      本文标题:Python 进阶——什么是上下文管理器

      本文链接:https://www.haomeiwen.com/subject/lvyrgktx.html