제너레이터 동작 방식
Generator yield 문은 메모리 절약을 위한 기법으로, generator는 iterator를 생성해주고 함수 안에 yield 키워드를 이용해서 데이터를 순차적으로 반환한다.
제너레이터의 이점으로는 메모리 절약 뿐만 아니라, 자연스러운 데이터 흐름 파이프라인으로 구성이 가능하다.
(ex. 긴 스트림에 대한 주기적인 처리를 할 때, 특정 단위로 반복이 가능하다.)
제너레이터의 동작방식은 아래와 같다.
예제 코드
#제네레이터 생성
def ex_func1(nums):
for i in nums:
yield i * i
if __name__ =="__main__":
generator_ex = ex_func1([1,2,3])
print(next(generator_ex)) # 1
print(next(generator_ex)) # 4
print(next(generator_ex)) # 9
print(next(generator_ex)) # 더 반환할 값이 없으면 StopIteration 발생
'Python > Utils' 카테고리의 다른 글
[Python Utils] 코드 컨벤션 템플릿 셋팅 (pre-commit, black, pycharm) (0) | 2023.05.29 |
---|---|
[Python Utils] Python 매직메소드 (MagicMethod) 이해하기 (0) | 2022.10.14 |
[Python Utils] Python Decorator 활용 (0) | 2022.08.25 |
[Python Utils] Python Type 어노테이션/힌트 (Typing, mypy) (0) | 2022.08.24 |
[Python Utils] 코드 컨벤션 (pylint, flake8, pre-commit, mypy) (0) | 2022.08.24 |