在给出的示例中,您首先尝试检索列表中不存在的值,就像这样做一样
dl[2]['a'],Python首先检索列表中的第三个(索引2)元素,然后继续在该列表中获取名为“
a”的元素对象-因此,您还必须实现对
__getitem__方法的自动扩展行为,如下所示:
class defaultlist(list): def __init__(self, fx): self._fx = fx def _fill(self, index): while len(self) <= index: self.append(self._fx()) def __setitem__(self, index, value): self._fill(index) list.__setitem__(self, index, value) def __getitem__(self, index): self._fill(index) return list.__getitem__(self, index)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)