Я пытаюсь понять, что делает дескриптор __get__
в коде ниже. Я написал весь учебник о __get__
, все еще не могу понять, что здесь происходит.Дескриптор __get__ из метода
class A:
def __init__(self, socket, address=None):
self.sock = socket
self.address = address
self.verbose = True
class B():
def __init__(self):
self.clients = []
self.slaves = []
self.pending_tasks = []
self.running_tasks = {}
self.finished_tasks = {}
class C(B):
def __init__(self, *args, **kwargs):
super(C, self).__init__(*args, **kwargs)
def handle_new_connection(self, socket, address):
link = A(socket, address)
def bind(self, host, port):
handle = self.handle_new_connection.__get__(self, C)
if __name__ == "__main__":
m = C()
m.bind('0.0.0.0', 6666)
Что __get__
делает в методе связывания?
Это * полностью избыточно *, поскольку 'self.handle_new_connection' делает привязку * уже *. –
Переменная дескриптора отправляется на gevent.server.StreamServer. Я полагаю, что __get__ в дескрипторе возвращает носок и адрес из NetLink? Я прав? – user3648963