我有一个基类,其中包含一个 @classmethod
,它充当许多子类中大量方法的装饰器。
class BaseClass():
@classmethod
def some_decorator(cls, method):
@wraps(method)
def inner_method(self, *args, **kwargs):
# do stuff
return method(self, *args, **kwargs)
return inner_method
class ChildClass(BaseClass):
@BaseClass.some_decorator
def some_child_method(self):
# do other stuff
return
当我对这段代码进行分析并通过树形视图查看时,我看到来自数百个不同位置的数千次对“some_decorator”的调用。然后我看到“some_decorator”从刚才来的数百个位置回调。这非常恼人,我还没有找到解决方法,无论是通过更改代码还是以不同的方式进行分析。(目前使用gprof2dot: 如何使用Python性能分析器获取调用树?)你有什么想法吗?