У меня есть класс, содержащий экземпляр itertools.cycle
, который я хотел бы скопировать. Единственный подход (, который я могу придумать ), заключается в извлечении исходного итерируемого объекта (, который был списком ), и сохранении позиции, в которой находится цикл.
К сожалению, я не могу получить список, который я использовал для создания экземпляра цикла, и, похоже, нет очевидного способа сделать это:
import itertools
c = itertools.cycle([1, 2, 3])
print dir(c)
['__class__', '__delattr__', '__doc__', '__format__', '__getattribute__',
'__hash__', '__init__', '__iter__', '__new__', '__reduce__',
'__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__',
'__subclasshook__', 'next']
Я могу придумать несколько разумных причин, почему это было бы запрещено для некоторых типов входных итераций, но для кортежа или, возможно, даже для списка (изменчивость может быть проблемой ), я не понимаю, почему это было бы невозможно.
Кто-нибудь знает , можно ли извлечь не -бесконечную итерацию из itertools.cycle
экземпляра. Если нет, кто-нибудь знает , почему эта идея плоха?