擅长:python、mysql、java
<p>如果您有对字典的引用,对字典的更新将反映到具有引用的所有内容。在</p>
<p>客户连接并保留一个套接字<code>sock</code>。您加载他的帐户并将其放入<code>connections[sock]</code>。然后保留一个帐户id的字典(另一种方式),其中包含对帐户的引用<code>accounts[account_id]</code>。让我们试试。。。在</p>
<pre><code>connected = {}
accounts = {}
def load_account(acct):
return db_magic(acct) # Grab a dictionary from the DB
def somebody_connected(sck, acct):
global connected, accounts
account = load_account(acct)
connected[sck] = account # Now we have it by socket
accounts[acct["accountid"]] = account # Now we have it by account ID
</code></pre>
<p>由于我们将<code>account</code>分配到两个不同的位置,对该字典(在任一结构中)的任何更改都将反映在另一个字典中。所以。。。在</p>
^{pr2}$
<p>我们在<code>update_username</code>中执行的更改将在执行<code>sck.send</code>时自动获取,因为引用完全相同。在</p>