如何向现有对象方法添加装饰器?

2024-02-09

如果我使用我无法控制的模块/类,我将如何装饰其中一个方法?

我明白我可以:my_decorate_method(target_method)()但我希望这种情况发生在任何地方target_method无需执行搜索/替换即可调用。

有可能吗?


不要这样做。

使用继承。

import some_module

class MyVersionOfAClass( some_module.AClass ):
    def someMethod( self, *args, **kwargs ):
        # do your "decoration" here.
        super( MyVersionOfAClass, self ). someMethod( *args, **kwargs )
        # you can also do "decoration" here.

现在,修复您要使用的主程序MyVersionOfAClass代替some_module.AClass.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何向现有对象方法添加装饰器? 的相关文章

随机推荐