首页 > 解决方案 > python - 从生成器获取特定的生成器数据

问题描述

让我们从代码开始

class MyClass:
   def __init__(self):
      self.elemplusone = None
      self.elemplustwo = None
      self.data = self.generate_data()
      
   def generate_data(self):
      for elem in range(10):
         yield elem+1, elem+2

我需要获取生成器的第一个和第二个元素。现在,我在创建对象后在类外调用它:

a_generator = MyClass()
c = next(a_generator.data)
elemplusone = c[0]
elemplustwo = c[1]

但我需要在类中指定它们(作为单独的生成器),我不能创建两个生成器方法。

谢谢

标签: pythongenerator

解决方案


我也不太明白你到底是什么意思。但这对你有帮助吗?

class MyClass:
   def __init__(self):
      self.data = self.generate_data()
      self.update_elements()

   def update_elements(self):
      self.elemplusone, self.elemplustwo = [x for x in next(self.data)]

   def generate_data(self):
      for elem in range(10):
          print("Yielded")
          yield elem + 1, elem + 2

a_generator = MyClass()

a_generator.elemplusone是 1 和a_generator.elemplustwo2。

现在你可以再次调用a_generator.update_elements()来生成你的元素并在你的生成器中继续。如果这对您有帮助,请告诉我。祝你好运!


推荐阅读