python - получение заданных c данных генератора от генератора - PullRequest
0 голосов
/ 05 августа 2020

начнем с кода

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]

, но мне нужно, чтобы они были указаны (как отдельные генераторы) в классе, и я не могу создать два метода генератора.

Спасибо

1 Ответ

0 голосов
/ 05 августа 2020

Я тоже не совсем понимаю, что вы имеете в виду. Но помогает ли это вам?

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.elemplustwo равно 2.

Теперь вы можете вызвать a_generator.update_elements(), чтобы снова получить свои элементы и продолжить работу в генераторе . Пожалуйста, дайте мне знать, поможет ли это вам. Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...