- class MyClass(object):
- def __call__(self, *args, **kwargs):
- print(66666)
- def __setattr__(self, key, value):
- print('setattr>>', key, value)
- def __getattr__(self, item):
- print('getattr>>', item)
- def __setitem__(self, key, value):
- print('setitem>>', key, value)
- def __getitem__(self, item):
- print('getitem>>', item, "item")
- def func():
- return 123
- a = MyClass()
- a.name = "ZWQ" # setattr>> name ZWQ
- a.mynameissetattr # getattr>> mynameissetattr
- # 点操作, 设置与获取调用的是__setattr__, __getatter__方法
- a["name"] = "ZWQ" # setitem>> name ZWQ
- a["my name is name"] #getitem>> my name is name item
- # [] 是操作元素, 调用__item__方法
来源: http://www.bubuko.com/infodetail-2970234.html