gpt4 book ai didi

Python cProfile - 修饰函数模糊配置文件可视化

转载 作者:太空宇宙 更新时间:2023-11-03 15:16:51 25 4
gpt4 key购买 nike

我有一个带有 @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

当我分析此代码并通过 TreeView 查看它时,我看到来自数百个不同位置的数千个对 some_decorator 的调用。

然后我看到 some_decorator 回调到它刚刚来自的数百个地方。

这很烦人,我还没有找到解决方法,无论是通过更改代码还是以不同的方式进行分析。 (使用 gprof2dot atm: How can you get the call tree with python profilers? )

想法?

最佳答案

有多种方法可以构建装饰器来保存文档/签名。 wrapt 库为此提供了很多功能。

https://wrapt.readthedocs.io/en/latest/decorators.html#decorating-class-methods

它最终会看起来像这样:

class BaseClass():
@wrapt.decorator
@classmethod
def some_decorator(cls, method, instance, *args, *kwargs):
# do stuff
return method(instance, *args, **kwargs)

关于Python cProfile - 修饰函数模糊配置文件可视化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43813502/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com