2013年4月8日月曜日

開発環境

『初めてのPython 第3版』(Mark Lutz 著、夏目 大 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-393-7) のVI部(クラスとオブジェクト指向プログラミング)のまとめ演習1.(継承)を解いてみる。

その他参考書籍

1.(継承)

コード(BBEdit)

sample.py

#!/usr/bin/env python3.3
#-*- coding: utf-8 -*-

class Adder:
    def add(self, x, y):
        print("Not implemented")

class ListAdder(Adder):
    def add(self, x, y):
        return x + y

class DictAdder(Adder):
    def add(self, x, y):
        x.update(y)
        return x

a = ListAdder()
b = DictAdder()
print(a.add([1,2], [3,4,5]), 
    b.add({'a':1,'b':2}, {'c':3,'d':4,'e':5}), sep="\n")

入出力結果(Terminal)

$ ./sample.py
[1, 2, 3, 4, 5]
{'e': 5, 'd': 4, 'c': 3, 'b': 2, 'a': 1}
$

改造後

コード(BBEdit)

sample.py

#!/usr/bin/env python3.3
#-*- coding: utf-8 -*-

class Adder:
    def __init__(self, data):
        self.data = data
    def add(self, y):
        print("Not implemented")
    def __add__(self, y):
        return self.add(y)

class ListAdder(Adder):
    def add(self, y):
        return self.data + y

class DictAdder(Adder):
    def add(self, y):
        self.data.update(y)
        return self.data

a = ListAdder([1,2])
b = DictAdder({'a':1,'b':2})
print(a + [3,4,5], b + {'c':3,'d':4,'e':5}, sep="\n")

入出力結果(Terminal)

$ ./sample.py
[1, 2, 3, 4, 5]
{'b': 2, 'c': 3, 'a': 1, 'd': 4, 'e': 5}
$

0 コメント:

コメントを投稿