더북(TheBook)

이 설계 방식을 통해, 현재 상태를 전달하여 변형시킬지 여부를 결정하거나 해당 매개 변수를 생략해 새로운 목록 결과를 얻을 수 있으므로 상태 유지를 간단히 제어할 수 있습니다.

 

 

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())
...

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.