擅长:python、mysql、java
<p>实际上,您应该将<code>dict</code>子类化,并重写实现所需的操作。拥有一个内部<code>data</code>字典是多余的。例如</p>
<pre><code>class CustomValue:
def __init__(self):
self.lines = []
def __iadd__(self, line):
self.lines.append(line)
return self
class CustomDict(dict):
def __missing__(self, key):
key = self[key] = CustomValue()
return key
def __setitem__(self, item, value):
if isinstance(item, CustomValue):
return
super().__setitem__(item, value)
def main():
d = CustomDict()
d['key0'] += 'Line 1'
d['key0'] += 'Line 2'
d['key1'] += 'Line 3'
d['key1'] += 'Line 4'
print(d)
</code></pre>