
从Python
3.2开始,标准库甚至都包含对此的支持。从类派生
contextlib.ContextDecorator使编写既可以用作装饰器又可以用作上下文管理器的类变得容易。此功能可以很容易地反向移植到Python
2.x-这是一个基本实现:
class ContextDecorator(object): def __call__(self, f): @functools.wraps(f) def decorated(*args, **kwds): with self: return f(*args, **kwds) return decorated
从此类派生上下文管理器,
__enter__()并
__exit__()照常定义和方法。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)