よく使いそうなフックメソッドのサンプル
# -*- coding: utf-8 -*-
class Test(object):
def __init__(self):
print "Call __init__\n"
def __getattr__(self, name):
print "Call __getattr__"
print "name: {}".format(name)
print ""
def __setattr__(self, name, value):
print "Call __setattr__"
print "name: {}".format(name)
print "value: {}".format(value)
print ""
if __name__ == "__main__":
test = Test() # __init__が呼ばれる
# __getattr__が呼ばれる
# 存在しない属性でもOK
test.aaa
test.bbb = 1 # __setattr__が呼ばれる
以下、出力結果
Call __init__
Call __getattr__
name: aaa
Call __setattr__
name: bbb
value: 1