クラスのメモ-本344ページ例13.1(hotel.py)-デフォルトパラメータを使用してインスタンス化し、少し変更します.

4059 ワード

class HotelRoomCalc(object):
    'Hotel room rate calculator'
    
    def __init__(self, rt, sales = 0.085, rm = 0.1):
        '''HotelRoomCalc default arguements:
        sales tax == 8.5% and room tax == 10% '''
        self.salesTax = sales
        self.roomTax = rm
        self.roomRate = rt
        
    def calcTotal(self, days =1):
        'Calcultate total; default to daily rate'
        daily = round((self.roomRate * 
                       (1 + self.roomTax + self.salesTax)), 2)
        return float(days) * daily
    
sfo = HotelRoomCalc(299)
print 'Instance San Francisco'
print 'Daily rate $', sfo.calcTotal()
print '2-day rate $', sfo.calcTotal(2)

sea = HotelRoomCalc(189, 0.086, 0.058)
print '
Instance Seattle
' print 'Daily rate $', sea.calcTotal() print '2-day rate $', sea.calcTotal(4) wasWkDay = HotelRoomCalc(169, 0.045, 0.02) wasWkEnd = HotelRoomCalc(119, 0.045, 0.02) print '
Washington, D.C.
' print '$', wasWkDay.calcTotal(5) + wasWkEnd.calcTotal()

実行結果
Instance San Francisco
Daily rate $ 354.31
2-day rate $ 708.62

Instance Seattle
Daily rate $ 216.22
2-day rate $ 864.88

Washington, D.C. 
$ 1026.63