擅长:python、mysql、java
<p>假设<code>queue.push</code>只需要读访问权限,可以尝试如下操作:</p>
<pre><code>class MergedDicts(dict):
def __init__(self, *dicts, **kw):
self.dicts = dicts + (kw,)
def __getitem__(self, key):
for d in self.dicts:
if key in d: return d[key]
raise KeyError(key)
</code></pre>
<p>这将为您提供一个从两个源返回项的字典,但避免了从原始源构建另一个实际副本的开销(但是,您可能需要实现的不仅仅是<code>__getitem__</code>,这取决于<code>push</code>需要什么)。在</p>
<p>用法:</p>
^{pr2}$
<p>或者:</p>
<pre><code>queue.push(MergedDicts(e, table="users", timestamp=time.time()))
</code></pre>