我想在 python 中添加一个新功能,纯粹出于实验目的,我想扩展装饰器语法。目前装饰器可以应用于函数和类。我还想在循环(for例如循环)以及代码块上使用装饰器。
示例 1:
    @foo
    for i in range(20):
        # do something
        # and something more
示例 2:
    @foo
        # there's a block starting from an indent here.
        # there's some code now
        # do something
        # and something more
现在虽然这是基本思想,但我的要求是修改装饰器的主体。例如,我想根据应用于它的装饰器稍微更改循环。我可以为此使用 AST 模块。
问题是我不想完全添加新语法及其完整实现。我只想用新语法解析,访问解析树和装饰器的主体,对其进行操作并将其插入程序的主体,删除装饰器,从而将具有新语法的程序更改为 python 的语法马上。
关于我将如何做这件事的任何想法?