Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用线程(Python)初始化类_Python_Multithreading_Class_Python 2.7 - Fatal编程技术网

使用线程(Python)初始化类

使用线程(Python)初始化类,python,multithreading,class,python-2.7,Python,Multithreading,Class,Python 2.7,所以我有这个密码 import socket def main(): #does a bunch of argument parsing while True: newsock, fromaddr = s.accept() ssl_sock = context.wrap_socket(newsock, server_side=True) threading.Thread(target=tls_listener, args=(ssl_sock,)).start

所以我有这个密码

import socket
def main():
    #does a bunch of argument parsing
while True:
     newsock, fromaddr = s.accept()
     ssl_sock = context.wrap_socket(newsock, server_side=True)
     threading.Thread(target=tls_listener, args=(ssl_sock,)).start()

def tls_listener(ssl_sock):
     #the thing I want to turn into a class
     #calls other functions, does some reporting 



if __name__ == "__main__":
     main()
我想让tls_listener成为一个类(它增长了很多,我意识到我应该抽象它(并使用
self
而不是传递变量)),但不确定如何使用线程启动类实例,因为它需要传递一个函数。我应该做类似的事情吗

class TlsListener(threading):
    #overload run()

或者可以让线程创建TlsListener类的新实例吗?

假设每次接受套接字时都要创建
TlsListener
类的新实例,只需保持代码不变,并在
tls\u listener
函数中创建一个新类:

while True:
     newsock, fromaddr = s.accept()
     ssl_sock = context.wrap_socket(newsock, server_side=True)
     threading.Thread(target=tls_listener, args=(ssl_sock,)).start()

def tls_listener(ssl_sock):
    t = TlsListener()  # new instance of TlsListener class

事实上,我不能推翻这个答案,因为我的声望还不到15,但谢谢你!非常简单、优雅的解决方案。