Изучая детали реализации itertools.cycle, мне показалось, что цикл while использовался для сброса генератора (функция с выходом) и обеспечения бесконечного повторения итерируемого, но если бы это было так, в то время как нетпереместитесь вверх и удалите вторую половину метода.Предполагая, что они умнее меня, я предполагаю, что мне чего-то не хватает, хотя вторая функция, приведенная ниже, похоже, работает с заданными диктами, списками и строками.
https://docs.python.org/3.7/library/itertools.html#itertools.cycle
def cycle(iterable):
# cycle('ABCD') --> A B C D A B C D A B C D ...
saved = []
for element in iterable:
yield element
saved.append(element)
while saved:
for element in saved:
yield element
против
def cycle_huh(iterable):
# cycle('ABCD') --> A B C D A B C D A B C D ...
while True:
for element in iterable:
yield element
Я что-то упускаю?Или итеративный тип, где требуется первое, а второе его сломает.