我们需要澄清一下

2024-04-24 02:46:01 发布

您现在位置:Python中文网/ 问答频道 /正文

当我阅读twisted框架教程中关于“编写服务器”的代码时,我看到了下面几行让我困惑的代码。你知道吗

class Chat(LineReceiver):
    def __init__(self,users):
        self.users = users

class ChatFactory(Factory):

    def __init__(self):
        self.users = {} # maps user names to Chat instances
    def buildProtocol(self, addr):
        return Chat(self.users)

任何人请解释一下自助用户在ChatFactory类中,每当自助用户在聊天室类更新。你知道吗


Tags: 代码用户self服务器框架initfactorydef
1条回答
网友
1楼 · 发布于 2024-04-24 02:46:01

在:

f = ChatFactory()
p = f.buildProtocol(some_address)

表达式f.usersp.users引用同一个字典。这是因为ChatFactory.buildProtocolself.users传递给Chat初始值设定项,Chat初始值设定项保存对它的引用。你知道吗

因为它是同一个字典,所以当另一个字典被更新时,没有什么会导致另一个字典被更新,因为“one”和“the other”实际上是同一个东西。你知道吗

相关问题 更多 >