2010-01-22 2 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. –

ответ

0

Звонок в FingerFactory (странное имя, BTW) создает экземпляр объекта FingerFactory. Параметры для этого вызова передаются __init__ функции класса, где они принимаются параметром **kwargs в качестве словаря:

{'moshez': 'Happy and well'} 

Так это присвоенное атрибуту нового экземпляра FingerFactory users.

0

И еще вопрос, касающийся FingerFactory звонок.

Так вы создаете экземпляр в Python. Вы не используете ключевое слово new. Вы просто называете класс, как будто это функция. Конструктор класса: __init__

Смежные вопросы