Python中除了可以使用内建的类型,如list,tuple,dict,还可以创建自己的对象来实现像这些内建类型的访问,不过需要在定义类的时候对一些魔法方法逐一实现。
如下:
- class DictDemo:
- def __init__(self,key,value):
- self.dict = {}
- self.dict[key] = value
- def __getitem__(self,key):
- return self.dict[key]
- def __setitem__(self,key,value):
- self.dict[key] = value
- dictDemo = DictDemo('key0','value0')
- print(dictDemo['key0'])
- dictDemo['key1'] = 'value1'
- print(dictDemo['key1'])
上面的对象就相当于自己创建了一个内建类型相似的字典,当实例中有类似字典的操作的时候
比如:
- dictDemo1 = {"key0":"value0"}
- print(dictDemo1["key0"])
实例dictDemo["key0"]就类似上面的的操作,则会自动调用类中定义的方法__getitem__,输出在该方法返回的值
再看看dictDemo["key1"] = "value1",就是字典的操作,会自动调用类中定义的方法__setitem__,来设置相应的值
还有一个__del__,就是当我们要删除一个元素的时候调用(魔法方法会自动调用).