そこで、単純なジェネレーターを定義しました。
def gen1(x):
    if x <= 10:
        yield x
        for v in gen1(x + 1):
            yield v
基本的に、すべての値を返すように装飾したいのですが、最後は:
def dec(gen):
    def new_gen(x):
        g = gen(x)
        value = g.next()
        for v in g:
            yield value
            value = v
    return new_gen
さて、gen1を再定義すると
@dec
def gen1(x):
    ...
for i in gen1(1):
    print i    # Nothing printed
しかし、私が使用する場合:
some_gen = dec(gen1)
for i in some_gen(1):
    print i    # Prints 1 to 9, as needed
デコレータが機能しないのはなぜですか?どうすれば修正できますか?