2012年9月3日月曜日

開発環境

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

その他参考書籍

2.

何らかの処理を、あるオブジェクトから、そのオブジェクトに組み込まれた他のオブジェクトに委託すること。

コード(TextWrangler)

sample.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-

# あるオブジェクト
class A:
 def __init__(self,obj):
  self.obj = obj          # 組み込まれたオブジェクト
 def __getattr__(self,name):
  print("Trace:",name)
  return getattr(self.obj,name) # 処理を委託

if __name__ == "__main__":
 a = A([5,1,4,2,3])
 for x in a.obj:
  print(x,end=' ')
 print()
 a.append(0)
 for x in a.obj:
  print(x,end=" ")
 print()
 a.sort()
 for x in a.obj:
  print(x,end=" ")
 print()
 b = A({'a':1,'b':2})
 for key in b.keys():
  print(key,b.obj[key])
 

入出力結果(Terminal)

$ ./sample.py
5 1 4 2 3 
Trace: append
5 1 4 2 3 0 
Trace: sort
0 1 2 3 4 5 
Trace: keys
a 1
b 2
$

0 コメント:

コメントを投稿