所以我有这个代码
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类的新实例?
答案 0 :(得分:1)
假设您希望每次接受套接字时都创建TlsListener
类的新实例,您可以简单地保留代码,并在tls_listener
函数内创建一个新类:< / p>
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