Python3 尝试访问在线程调用中实例化的类的对象

问题描述 投票:0回答:1

在 Python3 中工作,我创建了一个管理一些表的类。这个类是在 threading.Thread() 的调用中实例化的,其中我有一个由线程机制调用的“运行”函数,因此它将实例化该类。现在,该函数将永远不会退出,因为它运行一些 tk 代码并处于无限循环中。因此类实例化的返回值不可用。

key_gui = threading.Thread(target=key_gui_run, args=(key_name_list, list, sendQueue, ))
key_gui.start()

被调用的函数很简单:

 def key_gui_run(large_list, small_list, queue):
   myObject = MyClass(large_list, small_list,  queue)

当系统运行时,由 MyClass 生成的对象会操作一些数据。我只想调用该对象中的方法来获取该数据。但是,线程类的要求不允许我获得该对象的引用。这是因为 key_gui_run() 永远不会退出,并且 myObject 的值永远不可用。

有解决这个困境的标准方法吗?我是否遗漏了一些我应该知道的有关 Python 类的内容?我对这门语言有点新手。

任何答案将不胜感激。

干杯!!

python python-3.x multithreading
1个回答
0
投票

为什么你不能这样做?

myObject = MyClass(name_list, list, sendQueue)
key_gui = threading.Thread(target=key_gui_run, args=(myObject,))
key_gui.start()
    ...

def key_gui_run(myObject):
    ...
© www.soinside.com 2019 - 2024. All rights reserved.