【发布时间】:2020-03-31 18:25:40
【问题描述】:
我正在使用一个名为https://github.com/rkern/line_profiler的好工具
要使用它,您需要在脚本中的多个位置放置一个装饰器@profile,以指示应该分析哪些函数。然后你通过执行脚本
kernprof -l script_to_profile.py
显然,当通过python script_to_profile.py 自行运行脚本时,没有定义装饰器,因此脚本会崩溃。
我知道如何定义一个标识装饰器,我可以从命令行传递一个标志,并根据标志的设置方式在主脚本中定义它。但是,我不知道如何将装饰器定义(或标志)传递给我加载的模块,以便它们在加载时不会崩溃。有什么想法吗?
def profile(func):
return func
【问题讨论】:
-
似乎您可以编写代码来检查是否定义了一个名为
profile的函数,如果没有,请将其定义为身份装饰器。 -
是的,我认为这会很好地工作!有没有指针可以查询是否定义了装饰器?
标签: python decorator python-decorators