2010-01-22 151 views
0

有人可以給我一個關於下面的代碼的解釋嗎?這段代碼片斷做了什麼?

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?? 
+1

從Python教程:http://docs.python.org/tutorial/controlflow.html#keyword-arguments。 – 2010-01-22 06:54:01

回答

0

對FingerFactory(一個奇怪的名字,BTW)的調用正在實例化一個FingerFactory對象。該調用的參數傳遞給類的__init__功能,在那裏它們被**kwargs參數接受的字典:

{'moshez': 'Happy and well'} 

因此,這是分配給新FingerFactory實例的屬性users

0

而另一個問題,關於FingerFactory調用。

這就是你如何在Python中實例化的。您不使用new關鍵字。你可以像調用函數一樣調用這個類。這個類的構造函數是__init__