13章閉写像――プロトタイプClosed Maps
制約
- 大きな問題は、問題領域に対して意味のあるモノ(things)に分解される。
- キーと値の辞書がモノを表現する。値は手続きや関数の場合もある。
- 手続きや関数は辞書に格納され、スロットを通して参照する。
プログラム
1 #!/usr/bin/env python 2 import sys, re, operator, string 3 4 # lambdaにできない補助関数 5 # 6 def extract_words(obj, path_to_file): 7 with open(path_to_file) as f: 8 obj['data'] = f.read() 9 pattern = re.compile(r'[\W_]+') 10 data_str = ''.join(pattern.sub(' ', obj['data']).lower()) 11 obj['data'] = data_str.split() 12 13 def load_stop_words(obj): 14 with open('../stop_words.txt') as f: 15 obj['stop_words'] = f.read().split(',') 16 # 1文字を単語として追加 17 obj['stop_words'].extend(list(string.ascii_lowercase))
Get プログラミング文体練習 ―Pythonで学ぶ40のプログラミングスタイル now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.