예 , 파이썬에서 반복자를 사용하여 생성기를 만들 수 있습니다. 반복자를 만드는 것은 쉽습니다. 키워드 yield 문을 사용하여 생성기를 만들 수 있습니다.
Python 생성기는 반복자를 생성하는 쉽고 간단한 방법입니다. 반복자처럼 작동하는 함수를 선언하는 데 주로 사용됩니다.
생성기는 일상 생활에서 한 번에 하나의 값을 반복할 수 있는 함수이며 모든 프로그래머는 목록, 문자열 및 Dict 등과 같은 반복 가능한 개체를 사용할 것입니다.
반복자는 반복을 통해 반복할 수 있는 개체입니다.
다음 예제는 Generator가 Python에서 Yield 문을 도입하여 값을 반환하는 것처럼 작동함을 보여줍니다.
예
def generator(): print("program working sucessfully") yield 'x' yield 'y' yield 'z' generator()
출력
<generator object generator at 0x000000CF81D07390>
for 루프를 사용하여 생성기를 만들 수도 있습니다.
예
for i in generator(): print(i)
출력
program working sucessfully x y z
반복자 객체는 두 가지 방법을 지원합니다. 1.__iter__method 및 2.__next__메서드
__iter__ 메서드는 반복자 객체 자체를 반환합니다. 주로 for 루프와 in 문에 사용됩니다.
__next__ 메서드는 더 이상 반환되는 항목이 없으면 반복기에서 다음 값을 반환하며 StopIteration 예외가 발생해야 합니다.
예
class function(object): def __init__(self, lowtemp, hightemp): self.current = lowtemp self.high = hightemp def __iter__(self): 'Returns itself as an iterator object' return self def __next__(self): 'Returns the next value till current is lower than high' if self.current > self.high: raise StopIteration else: self.current += 1 return self.current - 1 c = function(3,20) for i in c: print(i, end=' ')
출력
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20