18章自己反映性――リフレクションReflective

制約

  • プログラムは自分自身の情報、すなわちイントロスペクションにアクセスできる。
  • プログラムは、実行時に抽象化や変数などを追加して、自分自身を変更できる。

プログラム

 1 #!/usr/bin/env python
 2 import sys, re, operator, string, os
 3
 4 #
 5 # 2つの現実的(down-to-earth)機能
 6 #
 7 stops = set(open("../stop_words.txt").read().split(",") + list(string.ascii_lowercase))
 8
 9 def frequencies_imp(word_list):
10     word_freqs = {}
11     for w in word_list:
12         if w in word_freqs:
13             word_freqs[w] += 1
14         else:
15             word_freqs[w] = 1
16     return word_freqs
17
18 #
19 # 文字列として関数を定義
20 #
21 if len(sys.argv) > 1:
22 extract_words_func = "lambda name : [x.lower() for x in re.split(r'[^a-zA-Z]+', open(name).read()) if ...

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.