なんてことはないです。一番汚い形でFrancクラスを追加しただけです。
7章で抽象クラスを使うのですが、Pythonには言語の機能として抽象クラスとやらが無いようです。ていうか抽象クラスって何だ?レベルなのですが。とりあえず調べよう。
追記
抽象基底クラスをサポートするためにabcモジュールがPython2.6から組み込まれたらしいです。これに関しても調べてみます。
# !/usr/bin/env python # coding : utf-8 """ テスト駆動開発入門 5章 フランクに話す """ import unittest class TestMoney(unittest.TestCase): def testMultiplication(self): five = Dollar(5) self.assertEqual(Dollar(10), five.times(2) ) self.assertEqual(Dollar(15), five.times(3) ) def testFrancMultiplication(self): five = Franc(5) self.assertEqual(Franc(10), five.times(2) ) self.assertEqual(Franc(15), five.times(3) ) def testEuality(self): self.assert_(Dollar(5).equals(Dollar(5) ) ) self.assert_(not Dollar(5).equals(Dollar(6) ) ) class Dollar(object): __amount = 0 def __init__(self, amount): self.__amount = amount def times(self, multiplier): return Dollar(self.__amount * multiplier) def equals(self, dollar): return self.__amount == dollar.get_amount() def get_amount(self): return self.__amount def __eq__(self, other): return self.__amount == other.get_amount() class Franc(object): __amount = 0 def __init__(self, amount): self.__amount = amount def times(self, multiplier): return Franc(self.__amount * multiplier) def equals(self, franc): return self.__amount == franc.get_amount() def get_amount(self): return self.__amount def __eq__(self, other): return self.__amount == other.get_amount() if __name__ == "__main__": unittest.main()

- 作者: ケントベック,Kent Beck,長瀬嘉秀,テクノロジックアート
- 出版社/メーカー: ピアソンエデュケーション
- 発売日: 2003/09
- メディア: 単行本
- 購入: 43人 クリック: 1,002回
- この商品を含むブログ (153件) を見る