有人可以给我一个关于以下代码的解释吗?
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??
答案 0 :(得分:2)
答案 1 :(得分:0)
对FingerFactory(一个奇怪的名字,BTW)的调用是实例化一个FingerFactory对象。该调用的参数将传递给类的__init__
函数,**kwargs
参数将其作为字典接受:
{'moshez': 'Happy and well'}
因此,这被分配给新FingerFactory实例的users
属性。
答案 2 :(得分:0)
另一个问题是关于FingerFactory
来电。
这就是你在Python中进行实例化的方法。您不使用new
关键字。您只需将该类称为函数即可。该类的构造函数是__init__