2013年6月6日木曜日

開発環境

『初めてのPython 第3版』(Mark Lutz 著、夏目 大 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-393-7)のIV部(クラスとオブジェクト指向プログラミング)、25章(クラスと設計)の練習問題1、2を解いてみる。

その他参考書籍

1.

sample.py

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

class A:
    def f(self):
        print("Hello, A!")

class B:
    def g(self):
        print("Hello, B!")

# 多重継承
class C(B, A): pass

i = C()
# クラスAのメソッド
i.f()
# クラスBのメソッド
i.g()

入出力結果(Terminal)

$ ./sample.py
Hello, A!
Hello, B!
$

2.

sample.py

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

# 何らかの処理を、あるオブジェクトから、そのオブジェクトに組み込まれた
# オブジェクトに「委託」するのがデリゲーション

class A:
    def __init__(self, object):
        self.object = object
    # 処理を委託
    def __getattr__(self, attrname):
        print("Trace: {0}".format(attrname))
        return getattr(self.object, attrname)

a = A([1,2])
a.append(10)
print(a.object)

a = A({'a':1,'b':2})
a.update({'c':3,'d':4})
print(a.object)

入出力結果(Terminal)

$ ./sample.py
Trace: append
[1, 2, 10]
Trace: update
{'b': 2, 'c': 3, 'a': 1, 'd': 4}
$

0 コメント:

コメントを投稿