self.sendLine或self.transport.write?

时间:2012-12-24 17:46:19

标签: python twisted

在扭曲中,调用self.transport.write()和self.sendLine()有什么区别? 例如,以下程序的行为与我在lineReceived中调用的行为完全相同 方法:

class FooProtocol(basic.LineReceiver):

    delimiter = '\n'

    def connectionMade(self):
        self.sendLine("Foo")

    def lineReceived(self, line):
        self.sendLine("Echoed: " + line)
        #self.transport.write("Echoed: " + line + "\n")

if __name__ == "__main__":
    stdio.StandardIO(FooProtocol())
    reactor.run()

有更多的pythonic(或twistedic ......)方式吗?

提前感谢!

1 个答案:

答案 0 :(得分:4)

sendLine()是一种方便的方法。默认实现是:

def sendLine(self, line):
    return self.transport.write(line + self.delimiter)

sendLine()是一个略高级别的功能。您不需要在面向行的协议中直接使用self.transport.write()