Pythonのお勉強 Part17at TECH
Pythonのお勉強 Part17 - 暇つぶし2ch19:デフォルトの名無しさん
07/02/18 01:54:54
委譲(デリゲート)での__getattribute__の使い方が分りません。
  従来の__getattr__() は、解決できない属性名の時だけ呼ばれるが
  __getattribute__() は、属性値の取得が必要になったときに、常に呼ばれるらしいのですが。

まず、__getattr__でのサンプル。

class wrapper(object):
def __init__(self, obj):
self.__wrapped = obj # obj を組み込む。
def __getattr__(self, attrname): # attrnameは、知らない名前の属性が来たら呼び出される
return getattr(self.__wrapped, attrname) # 組み込まれたオブジェクトにgetattr 関数で処理を委託。

l = wrapper([]) # リストを引数にwrapper クラスを呼び出すと、リストにできる操作なら全てできる

(実行すると、正しく動作します)
>>> l.append(333)
>>> l.pop(0)
333


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch