728x90
반응형

2024/06/14 2

[Python] 제너레이터(Generator)

제너레이터(Generator)이터레이터(Iterator)를 간단히 생성해주는 함수일반적인 함수처럼 정의되지만, 값을 반환할 때 return 대신 yield 사용제너레이터 함수는 호출될 때 실행되지 않고, 제너레이터 객체를 반환이터레이터 프로토콜를 따름yield 키워드: 값을 생성하고, 함수의 실행 상태를 유지. 다음 next() 호출 시 이 상태로 다시 실행을 시작지연 평가: 값을 필요할 때마다 하나씩 생성하여 메모리 사용을 줄임def gen(): yield 'a' yield 'b' yield 'c' g = gen()next(g) # 'a'next(g) # 'b'next(g) # 'c'next(g) # StopIteration모든 제너레이터는 이러에티러를 만드므로 제너레이터 객체는 이터레..

[Python] 이터레이터(Iterator)

이터레이터(Iterator)반복 가능한 객체를 순회할 수 있는 객체반복 가능한 객체란? -> List, tuple, set 등반복 가능한 객체 != 이터레이터 반복 가능한 객체 == 이터러블(iterable) 객체 (반복가능하면 이터레이터로 만들 수 있는 것)이터러블 객체는 __iter__() method를 가지고 있고, 이 method는 이터레이터를 반환하는 역할이터러블 객체는 iter() 함수를 이용하여 이터레이터로 만들 수 있mylist = [1, 2, 3]next(mylist)Traceback (most recent call last):File "", line 1, in TypeError: 'list' object is not an iterator# Iterable하다는 것이 Iterator라는 ..

728x90
반응형