在面向对象的过程中,我们会用到一些特殊方法,在这里记录一下:
class Foo:
def __init__(self, name):
self.name = name
def show(self):
print(self.name)
def __call__(self):
print('调用了call方法')
def __getitem__(self, key):
print('调用了getitem方法 %s' %key)
def __setitem__(self, key, value):
print('调用了setitem方法 key is %s, value is %s' %(key, value))
def __delitem__(self, key):
pass
obj = Foo('xiaoran')
obj() ### 默认调用__call__
obj['k'] ###默认调用__getitem__
obj['k'] = '123' ##默认调用__setitem__
del obj['k'] ###默认调用__delitem__
>>>>>>>
调用了call方法
调用了getitem方法 k
调用了setitem方法 key is k, value is 123