開発環境
- 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 コメント:
コメントを投稿