11章モノのプログラム――オブジェクトThings
制約
- より大きな問題は、問題領域に対して意味のあるモノ(things)に分解される。
- 各モノはデータのカプセルであり、手続きを公開する。
- データは決して直接アクセスされず、これらの手続きを通してアクセスされる。
- カプセルは、他のカプセルで定義された手続きを再利用できる。
プログラム
1 #!/usr/bin/env python 2 import sys, re, operator, string 3 from abc import ABCMeta 4 5 # 6 # クラス 7 # 8 class TFExercise(metaclass=ABCMeta): 9 __metaclass__ = ABCMeta 10 11 def info(self): 12 return self.__class__.__name__ 13 14 class DataStorageManager(TFExercise): 15 """ ファイル内容のモデル化 """ 16 17 def __init__(self, path_to_file): 18 with open(path_to_file) as f: 19 self._data = f.read() 20 pattern = re.compile(r'[\W_]+') 21 self._data = pattern.sub(' ', self._data).lower() ...
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.