检查Python操作:如何逐个获取所有装饰器?
我正在检查运行中的代码。我想获取一个函数或方法上使用的所有装饰器。比如,如果它是 @classmethod
,我想得到的就是字符串:"@classmethod";如果是像 @path(MyClass.myop)
这样的装饰器,我想得到的字符串是 "@path(MyClass.myop)"。我知道可以尝试分析源代码,但这有点复杂,我相信这些信息应该存储在某个地方,并且可以被提取出来。请问怎么才能做到这一点呢?
1 个回答
0
感谢评论者的提醒,我意识到这个任务几乎不可能完成。同时,我也明白了,这种处理方式应该使用ast模块来进行,这样除了注释以外的内容都可以比较简单地追踪和提取。
所以我对自己问题的回答是:改用ast模块。