向python动态添加或返回表达式

时间:2018-03-28 09:35:18

标签: python

我想要一个特殊的装饰器,甚至内部更改python,以便可以实现以下功能:

@special_decorator
def fo():
    pass

fo()  # transform to " yield fo() "  

1 个答案:

答案 0 :(得分:0)

你可以使用这个装饰器:

def to_yield(f):
    def inner():
        yield f()
    return inner

测试

@to_yield
def foo():
    return 'called foo'


print(next(foo())
# prints "called foo"