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.