제너레이터 함수

매일 공부(ML)·2023년 3월 25일
0

Fluent Python

목록 보기
100/130

제어 흐름

반복형, 반복자, 제너레이터

제너레이터 함수

동일한 기능을 파이썬스럽게 구현하려면 SequenceIterator 클래스 대신 제너레이터 함수를 사용한다.

#제너레이터 함수를 사용해서 구현한 Sentence

import re
import reprlib

RE_WORD = re.compile('\w+')

class Sentence:

	def __init__(self, text):
    	self.text = text
        self.words = RE_WORD.findall(text)
        
    def __repr__(self):
    	return 'Sentence(%s)' reprlib.repr(self.text)
        
    def __iter__(self):
    	for word in self.words:
        	yield word
        return

Sentence 코드에서iter—( )는 SentenceIterator ( ) 생성자를 호출해서
반복자를생성하고반환했다. [예제 14-5] 의 반복자는사실 제너레이터 객체로서__iter
( )
메서드를호출할 때 자동으로 생성된다. 여기서 iter( )는 제너레이터 함수이기 때문이다.
다음 절에서는 제너레이터 함수에 대해 자세히 설명한다.

profile
성장을 도울 아카이빙 블로그

0개의 댓글