擅长:python、mysql、java
<p>您可以将<code>dict</code>子类化并重写<a href="https://docs.python.org/3/reference/datamodel.html#object.__missing__" rel="nofollow noreferrer">^{<cd2>}</a>方法。你知道吗</p>
<pre><code>class CustomMapping(dict):
def __missing__(self, key):
self[key] = self['max'] = self.get('max', 0) + 1
return self[key]
d = CustomMapping()
d['a'] # 1
d['b'] # 2
d['a'] # 1
d # {'a': 1, 'b': 2, 'max': 2}
</code></pre>
<p>正如@Code学徒指出的,最好在<code>__init__</code>方法中设置一个<code>max</code>属性。这避免了潜在的密钥冲突(即,恰好命名为<code>"max"</code>的密钥)。你知道吗</p>