728x90
반응형
제너레이터(Generator)
제너레이터는 연속된 데이터를 만들어내는 함수입니다. 제너레이터는 각 데이터를 생성하고 메모리에 저장하지 않고, 필요할 때마다 데이터를 생성합니다. 이는 메모리를 효율적으로 사용하며, 대용량 데이터를 처리할 때 유용합니다.
제너레이터 함수는 함수 내부에서 yield 키워드를 사용하여 값을 반환하면서 일시적으로 함수의 실행을 중단하고, 호출자에게 제어를 반환합니다. 호출자는 제너레이터에서 반환한 값을 사용하고, 다음에 호출될 때까지 기다립니다.
예제:
def my_generator():
yield 1
yield 2
yield 3
gen = my_generator()
print(next(gen)) # 1 출력
print(next(gen)) # 2 출력
print(next(gen)) # 3 출력
이터레이터(Iterator)
이터레이터는 값을 차례대로 꺼낼 수 있는 객체입니다. 이터레이터는 __iter__()와 __next__() 메서드를 구현하여 값을 차례대로 반환합니다. 이터레이터는 for 반복문에서 사용되거나 next() 함수로 값을 차례대로 얻을 수 있습니다.
예제:
class MyIterator:
def __init__(self):
self.num = 0
def __iter__(self):
return self
def __next__(self):
if self.num <= 5:
value = self.num
self.num += 1
return value
else: raise StopIteration
my_iter = MyIterator()
for item in my_iter:
print(item) # 0부터 5까지 순차적으로 출력
제너레이터 vs 이터레이터
- 제너레이터는 값을 생성해주는 함수이며, yield 키워드를 사용하여 값을 반환합니다. 제너레이터는 호출자에게 값을 반환하고, 다음에 호출될 때까지 실행을 중단합니다.
- 이터레이터는 값을 차례대로 반환하는 객체이며, __iter__()와 __next__() 메서드를 구현하여 값을 반환합니다. 이터레이터는 for 반복문에서 사용되거나 next() 함수로 값을 차례대로 얻을 수 있습니다.
728x90
반응형
'프로그래밍 > python' 카테고리의 다른 글
11. 파이썬 기본 개념: 클래스와 객체지향 프로그래밍 (0) | 2024.03.30 |
---|---|
10.파이썬 기본 개념: 모듈과 패키지 (0) | 2024.03.29 |
8. 파이썬 파일 처리: 파일 열기, 읽기, 쓰기 (2) | 2024.03.26 |
7. 파이썬 예외 처리: try-except, 다양한 예외 처리 기법, finally (0) | 2024.03.26 |
6. 파이썬 기본 자료구조: 딕셔너리와 세트 (2) | 2024.03.24 |