example-code-2e/17-it-generator/sentence_gen.py

29 lines
484 B
Python
Raw Normal View History

"""
Sentence: iterate over words using a generator function
"""
# tag::SENTENCE_GEN[]
import re
import reprlib
RE_WORD = re.compile(r'\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: # <1>
yield word # <2>
2021-09-16 03:48:08 +02:00
# <3>
# done! <4>
# end::SENTENCE_GEN[]