이 설계 방식을 통해, 현재 상태를 전달하여 변형시킬지 여부를 결정하거나 해당 매개 변수를 생략해 새로운 목록 결과를 얻을 수 있으므로 상태 유지를 간단히 제어할 수 있습니다.
2.4.3 세 번째 방법, 상태 생성기의 이점 이용하기
제안하는 마지막 해결책은 공개 포럼에서 아직 많이 논의되지 않았지만, 제가 가장 좋아하는 방법입니다. 덧붙이면, 이 방법은 가변 기본 매개 변수 문제에 대해 처음 우려를 표하기 시작했던 2001년 당시에는 아직 사용할 수 없었습니다.
생성기 기반 상태 유지
>>> def word_injector(initial_words=None):
... words = [] if initial_words is None else initial_words
... while True:
... fname = (yield words)
... if fname is not None:
... with open(fname) as wordfile:
... words.extend(wordfile.read().split())
...