gpt4 book ai didi

python - 使用线程初始化类 (Python)

转载 作者:太空宇宙 更新时间:2023-11-03 17:38:06 27 4
gpt4 key购买 nike

所以我有这个代码

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_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

关于python - 使用线程初始化类 (Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30941601/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com