要创建类似字典对象而不使用继承,可以使用组合来实现。下面是一个示例代码:
class Dictionary:
def __init__(self):
self.keys = []
self.values = []
def __getitem__(self, key):
if key in self.keys:
index = self.keys.index(key)
return self.values[index]
else:
return None
def __setitem__(self, key, value):
if key in self.keys:
index = self.keys.index(key)
self.values[index] = value
else:
self.keys.append(key)
self.values.append(value)
def __delitem__(self, key):
if key in self.keys:
index = self.keys.index(key)
del self.keys[index]
del self.values[index]
def __contains__(self, key):
return key in self.keys
def __len__(self):
return len(self.keys)
def keys(self):
return self.keys
def values(self):
return self.values
def items(self):
return zip(self.keys, self.values)
你可以使用这个类来创建一个类似字典的对象,并且可以像操作字典一样使用它。以下是一个示例:
d = Dictionary()
d['name'] = 'John'
d['age'] = 30
print(d['name']) # 输出: John
print('age' in d) # 输出: True
print(len(d)) # 输出: 2
print(d.keys()) # 输出: ['name', 'age']
print(d.values()) # 输出: ['John', 30]
print(d.items()) # 输出: [('name', 'John'), ('age', 30)]
del d['age']
print(len(d)) # 输出: 1
print('age' in d) # 输出: False