是否有内置/推荐的方法来替换decorator:

def generator(f):
    return f()

在下面的例子中?
from random import randint

@generator
def mygenerator():
    while True:
        yield randint(0, 9)

for i in mygenerator:
    print i

... 因为我不想写:
for i in mygenerator():
    print i

这是一个简单的例子。在实际用例中,不需要/没有理由拥有两个mygenerator实例,因此我想立即创建该实例。最好以不可以创建其他实例的方式。

最佳答案

其内置方式如下:

def mygenerator():
    while True:
        yield randint(0, 9)

mygenerator = mygenerator()

这至少具有清晰的优点,所以您不必查找@generator的功能。

10-04 21:43