概念:
在Python中,所有以“__”双下划线包起来的方法,都统称为“Magic Method”,中文称『魔术方法』,例如类的初始化方法 __init__ 。
重写:
每一个魔术方法都在python已经有定义了,如果需要自定义它的内容就可以在声明类的时候重写这些魔方方法。
使用:
每一个魔方方法都是设置好了,它什么情况下被调用。
class DictDemo:
def __init__(self,key,value):
self.dict = {}
self.dict[key] = value
def __getitem__(self,key):
print('__getitem__')
return self.dict[key]
def __setitem__(self,key,value):
print("__setitem__")
self.dict[key] = value
def __len__(self):
print("__len__")
return len(self.dict)+1
dictDemo = DictDemo('key0','value0')
print(dictDemo['key0']) #value0 # 获取键的值调用__getitem__
print('=======================')
dictDemo['key1'] = 'value1' # 设置键的值调用__setitem__
print('=======================')
print(dictDemo['key1']) #value1
print('=======================')
print(len(dictDemo)) # 返回长度调用__len__
__getitem__
value0
=======================
__setitem__
=======================
__getitem__
value1
=======================
__len__
3