这段代码片段做了什么?

时间:2010-01-22 06:52:24

标签: python

有人可以给我一个关于以下代码的解释吗?

from twisted.internet import protocol, reactor
from twisted.protocols import basic

class FingerProtocol(basic.LineReceiver):
    def lineReceived(self, user):
        self.transport.write(self.factory.getUser(user)+"\r\n")
        self.transport.loseConnection()

class FingerFactory(protocol.ServerFactory):
    protocol = FingerProtocol

    def __init__(self, **kwargs):  # whats is ** ??
        self.users = kwargs

    def getUser(self, user):
        return self.users.get(user, "No such user")

reactor.listenTCP(1079, FingerFactory(moshez='Happy and well'))  
# explain call to fnger factory??

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

对FingerFactory(一个奇怪的名字,BTW)的调用是实例化一个FingerFactory对象。该调用的参数将传递给类的__init__函数,**kwargs参数将其作为字典接受:

{'moshez': 'Happy and well'}

因此,这被分配给新FingerFactory实例的users属性。

答案 2 :(得分:0)

另一个问题是关于FingerFactory来电。

这就是你在Python中进行实例化的方法。您不使用new关键字。您只需将该类称为函数即可。该类的构造函数是__init__