9.5 生成器在UserList中的应用¶
- from collections import UserList
class MyList:
def __init__(self):
self.data = []
def __getitem__(self, index):
return self.data[index]
def __setitem__(self, index, value):
self.data[index] = value
def insert(self, index, item):
self.data.insert(index, item)
ll = MyList()
ll.insert(0, 1)
ll.insert(0, 2)
ll.insert(0, 3)
print(ll.data)
- from collections import UserDict
class MyDict:
def __init__(self):
self.data = {}
def __getitem__(self, item):
return self.data[item]
def __setitem__(self, key, value):
self.data[key] = value
def update(self, **kw):
for key, value in kw.items():
self[key] = value
dd = MyDict()
print(dd.data)
dd.update(key1='value1', key2='value2')
print(dd['key1'])
print(dd.data)
具体源码分析参考模块 collections