[英]what does this code snippet do?
有人可以给我解释一下以下代码吗?
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??
它是关键字参数表示法 。
对FingerFactory的调用(一个奇怪的名字,BTW)正在实例化FingerFactory对象。 该调用的参数传递给该类的__init__
函数,在这里**kwargs
参数将它们接受为字典:
{'moshez': 'Happy and well'}
因此,这已分配给新FingerFactory实例的users
属性。
还有另一个问题,关于FingerFactory
调用。
这就是在Python中进行实例化的方式。 您不使用new
关键字。 您只需将类当作函数来调用即可。 该类的构造函数是__init__
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.