将装饰器附加到类中的所有函数上

将装饰器附加到类中的所有函数上,第1张

装饰器附加到类中的所有函数上

进行此 *** 作或对类定义进行其他修改的最简单方法是定义一个元类。

另外,只需在类定义的末尾应用装饰器即可:

class Something:   def foo(self): passfor name, fn in inspect.getmembers(Something):    if isinstance(fn, types.UnboundMethodType):        setattr(Something, name, decorator(fn))

对于Python 3,请替换

types.UnboundMethodType
types.FunctionType

当然,在实践中,您将需要更选择性地应用装饰器。只要您要装饰除一种方法外的所有方法,您就会发现仅以传统方式使用装饰器语法会更轻松,更灵活。



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

原文地址: http://outofmemory.cn/zaji/5631571.html

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

发表评论

登录后才能评论

评论列表(0条)

保存