Pythonのお勉強 Part17
■ このスレッドは過去ログ倉庫に格納されています
0019デフォルトの名無しさん
2007/02/18(日) 01:54:54従来の__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
■ このスレッドは過去ログ倉庫に格納されています