Twisted 框架需要一些说明
Twisted framework need some clarifications
当我浏览有关 'writing servers' 的扭曲框架教程中的代码时,我遇到了以下让我感到困惑的代码行。
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 class 中的 self.users 如何在 Chat class 中的 self.users 更新时更新。
在:
f = ChatFactory()
p = f.buildProtocol(some_address)
表达式f.users
和p.users
指的是同一个字典。这是因为 ChatFactory.buildProtocol
将 self.users
传递给 Chat
初始化器并且 Chat
初始化器保存了对它的引用。
因为是同一个字典,所以没有什么会导致一个更新而另一个更新,因为 "one" 和 "the other" 实际上是同一个东西。
当我浏览有关 'writing servers' 的扭曲框架教程中的代码时,我遇到了以下让我感到困惑的代码行。
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 class 中的 self.users 如何在 Chat class 中的 self.users 更新时更新。
在:
f = ChatFactory()
p = f.buildProtocol(some_address)
表达式f.users
和p.users
指的是同一个字典。这是因为 ChatFactory.buildProtocol
将 self.users
传递给 Chat
初始化器并且 Chat
初始化器保存了对它的引用。
因为是同一个字典,所以没有什么会导致一个更新而另一个更新,因为 "one" 和 "the other" 实际上是同一个东西。