您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何在Python中制作重复生成器

如何在Python中制作重复生成器

不直接。允许生成器用于实现协同例程,资源管理等的灵活性的一部分是,它们始终是一次性的。一旦运行,发电机将无法重新运行。您将必须创建一个新的生成器对象。

但是,您可以创建自己的覆盖的类__iter__()。它将像可重用的生成器一样工作:

def multigen(gen_func):
    class _multigen(object):
        def __init__(self, *args, **kwargs):
            self.__args = args
            self.__kwargs = kwargs
        def __iter__(self):
            return gen_func(*self.__args, **self.__kwargs)
    return _multigen

@multigen
def myxrange(n):
   i = 0
   while i < n:
     yield i
     i += 1
m = myxrange(5)
print list(m)
print list(m)
python 2022/1/1 18:52:32 有326人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶