使用线程(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,但谢谢你!非常简单、优雅的解决方案。