티스토리 뷰

<이터러블 객체(Iterable Object)>

파이썬에서 for 문과 함께 리스트나 문자열 등이 사용될 수 있었다. 뿐만 아니라, 이터러블 객체(Iterable Object)가 존재하는 데, 이터러블 객체를 만들면 for문과 함께 객체를 사용할 수 있다.

 

다음의 간단한 예제 코드를 살펴보자.

class Counter:
    def __init__(self,start,finish):
        self.__start = start
        self.__finish = finish
    
    def __iter__(self):
        return self
    
    def __next__(self):
        if self.__start > self.__finish:
            raise StopIteration
        else:
            self.__start +=1
            return self.__start - 1
        

c = Counter(1,20)
        
for i in c:
    print(i)

이터러블한 객체가 되려면 가장 먼저 __iter__() 메소드를 객체 자신을 반환하도록 정의해주어야 한다.
그리고  __next__()를 통해 다음 값을 지정해 줄 수 있다. 만약 다음 값이 없을 경우 StopIteration 예외를 발생 시키면 된다.

 


제너레이터(Generators)>

이터러블 객체가 객체를 만들어, 이터레이터를 만드는 방법이라면, 제너레이터(Generators)는 함수를 통해 이터레이터를 만드는 방법이다.

 

다음의 간단한 예제 코드를 살펴보자.

def generator():
    yield "1"
    yield "2"
    yield "3"
        
for i in generator():
    print(i)

위와 같이 함수내에 yield 키워드를 지정해줌으로써 이터레이터로 활용할 수 있다.

댓글
반응형
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함