在Python中充当装饰器和上下文管理器的函数吗?

在Python中充当装饰器和上下文管理器的函数吗?,第1张

在Python中充当装饰器和上下文管理器的函数吗?

从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__()
照常定义和方法。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5673634.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-17
下一篇2022-12-17

发表评论

登录后才能评论

评论列表(0条)

    保存