開発環境
- OS X Lion - Apple(OS)
- BBEdit - Bare Bones Software, Inc., Emacs(Text Editor)
- プログラミング言語: Python
『初めての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 コメント:
コメントを投稿