2009年10月27日火曜日

属性値アクセスをカスタマイズする

特殊メソッド __getattr__ __setattr__ __delattr__
をクラスに定義すると属性値アクセスをカスタマイズできる

class A:
    dic = {}
    def __getattr__(self, name):
        return self.dic[name]
    def __setattr__(self, name, value):
        self.dic[name] = value
    def __delattr__(self, name):
        del self.dic[name]

a = A()
a.x = 1
print a.x
del a.x

詳細はドキュメントで

0 件のコメント:

コメントを投稿