我们正在开发一个项目并首次使用 Twisted。虽然我们都是初学者,但我们知道每个文件基本上只有一个类 + 函数通常是一种很好的做法。在 Twisted 中,我们在文档中读到的内容表明,这样做实际上是不可能的,因为您不能拥有多个扭曲运行的实例。
是否可以只编写您的代码,就好像twisted 正在运行一样,然后在运行twisted 的文件中运行您的所有函数等?
澄清:
假设我正在运行我的扭曲实例
main.py
我需要导入某些扭曲的协议:
from twisted.internet.protocol import Factory
from twisted.protocols.basic import LineReceiver
from twisted.internet import reactor
from twisted.internet import task
import random
import sqlite3
import string
我将创建一个类(但我们现在只说函数),它使用我从 twisted 导入的东西中的一些函数。例如,LineReceiver 有一个方法 sendLine:
def connectionLost(self, leave):
....
if self.users.has_key(self.name):
message = "%s has disconnected" % (self.name)
del self.users[self.name]
print (message)
for name, protocol in self.users.iteritems():
protocol.sendLine(message)
这一切都运行得很好,只要它与从扭曲的导入文件在同一个文件中。因为,据我们所知,事情就是这样完成的。例如,如果我要在一个文件中导入时间,然后制作另一个文件,我也必须在那里导入时间。
我不具体了解 LineReceiver,但我们的印象是您只能运行一个反应器实例,我们在整个程序中多次使用来自(例如 reactor.callLater)的方法。
然而,我们遇到的问题更多的是整洁。我们的程序很快就增长到刚刚超过 4,000 行标记并且还在增长,当然这会导致在所有这些代码行中寻找东西的大量时间。所以我们想基本上为每个类制作一个不同的文件。但是我们不确定这是否会起作用,因为每个文件中都没有运行扭曲。
或者是否可以简单地将每个类复制/粘贴到自己的文件中,运行 sendLine 等方法,然后在运行 twisted 的主文件中导入/调用它们?