python的上下文管理(contextlib)(2)
2017-08-13 16:53
393 查看
contextlib是一个Python模块,作用是提供更易用的上下文管理器。
编写 __enter__ 和 __exit__ 仍然很繁琐,因此Python的标准库 contextlib 提供了更简单的写法,
比如如下代码:
@contextmanager 这个装饰器接受一个 generator,用 yield 语句把 with ... as var 把变量输出出去,然后,with 语句就可以正常的工作了:
closing 也是一个经过 @contextmanager 装饰的generator
它的作用就是把任意对象变为上下文对象,并支持 with语句。
@contextmanager 这个装饰器接受一个 generator,用 yield 语句把 with ... as var 把变量输出出去,然后,with 语句就可以正常的工作了:
编写 __enter__ 和 __exit__ 仍然很繁琐,因此Python的标准库 contextlib 提供了更简单的写法,
比如如下代码:
from contextlib import contextmanager class Query(object): def __init__(self, name): self.name = name def query(self): print('Query info about %s...' % self.name) @contextmanager def create_query(name): print('Begin') q = Query(name) yield q print('End')
@contextmanager 这个装饰器接受一个 generator,用 yield 语句把 with ... as var 把变量输出出去,然后,with 语句就可以正常的工作了:
@contextmanager 这个装饰器接受一个 generator,用 yield 语句把 with ... as var 把变量输出出去,然后,with 语句就可以正常的工作了:
相关文章推荐
- 详解Python中contextlib上下文管理模块的用法
- python contextlib 上下文管理
- contextlib——上下文管理
- python学习笔记:利用contextlib和@contextmanager实现with语句上下文实例
- python的上下文管理(context)(1)
- 十六、Python 上下文管理 Context Manager
- [Dynamic Language] Python Django: 模板引擎(2)上下文Context
- 如何实现对上下文(Context)数据的统一管理 [提供源代码下载]
- 【Python】上下文管理 with...as...
- python contextlib
- Python 让对象支持上下文管理协议
- Python中with及contextlib的用法详解
- Python概念-上下文管理协议中的__enter__和__exit__
- python的上下文管理和with语句详解
- python中关于with以及contextlib的使用
- 使用Golang的Context管理上下文
- python with语句上下文管理的两种实现方法
- Entity Framework Context上下文管理(CallContext 数据槽)
- Python ftplib实现图片管理中心
- python with 和 contextlib