Я пытаюсь создать распределенную хэш-таблицу. Есть нить. Но функция run в потоке can not находит переменную sock, которую я инициализирую в конструкторе.Python-интерпретатор не смог найти переменную класса
Вот код -
from socket import *
from threading import *
class DHT(Thread):
def _init_(self):
self.sock = socket(AF_INET, SOCK_STREAM)
self.sock.bind(('127.0.0.1', 5000))
self.sock.listen(1)
def run(self):
while 1:
conn, addr = self.sock.accept()
data = conn.recv(20)
message, port, value = data.split("-")
if message == 'route message':
self.route_message(port, value)
elif message == 'check alive':
self.check_alive(port, value)
elif message == "new node":
self.new_node(port, value)
elif message == "update hash":
self.update_hash(port, value)
conn.close()
def route_message(self, port, value):
print("Routing Message")
def check_alive(self, port, value):
print("Checking Alive")
def new_node(self, port, value):
print("New Node")
def update_hash(self, port, value):
print("Updating Hash")
if __name__ == '__main__':
DHT().start()
теперь он говорит - AttributeError: объект «DHT» не имеет атрибута «_initialized» –
Вам нужно вызвать 'Thread .__ init __()' перед тем, как сделать что-нибудь еще в потоке. – RyPeck
Что мне делать внутри Thread .__ init __()? –