打印显示类:
class Display(object):
def show(self):
return ", ".join("{}".format(getattr(self, key)) for key in self.__dict__)
# 重写__str__定义对象的打印内容
def __str__(self):
return "{}".format(self.show())
创建自定义字典类,需继承Display类,否则print时只会显示内存地址:
class DictDemo(Display):
# 创建字典
def __init__(self, key, value):
self.dict = {}
self.dict[key] = value
# 获取对应key的值
def __getitem__(self, key):
return self.dict[key]
# 修改设置字典
def __setitem__(self, key, value):
self.dict[key] = value
# 删除对应key的键值对
def __delitem__(self, key):
del self.dict[key]
# 获取字典长度
def __len__(self):
return len(self.dict)
调用:
dictDemo = DictDemo('key0','value0') #方法一创建字典
print(dictDemo['key0']) #结果为value0,dictDemo["key0"]会自动调用类中的__getitem__方法
dictDemo['key1'] = 'value1' #自动调用类中的__setitem__方法
print(dictDemo['key1']) #结果为value1
print(len(dictDemo)) #结果为2,自动调用类中的__len__方法
print(dictDemo) #删除前
del dictDemo['key0'] #自动调用类中的__delitem__方法
dictDemo['key2'] = 'value2' #自动调用类中的__setitem__方法
print(dictDemo) #删除后
dictDemo1 = {"key0":"value0"} #方法二创建字典
print(dictDemo1["key0"]) #结果为value0