在Python 3中,我创建了一个管理一些表的类.这个类是用threading. Thread()调用实例化的,其中我有一个"run"函数,它由threads机制调用,因此它将实例化这个类.现在,该函数将永远不会退出,因为它运行一些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类的内容?我对这门语言还是个新手.

任何答复都将不胜感激.

干杯!!

推荐答案

为什么你不能这样做呢?

myObject = MyClass(name_list, list, sendQueue)
key_gui = threading.Thread(target=key_gui_run, args=(myObject,))
key_gui.start()
    # myObject is accessible from here.
    ...

def key_gui_run(myObject):
    # and also, from here.
    ...

Python相关问答推荐

线性模型PanelOLS和statmodels OLS之间的区别

Python库:可选地支持numpy类型,而不依赖于numpy

C#使用程序从Python中执行Exec文件

加速Python循环

我如何使法国在 map 中完全透明的代码?

迭代嵌套字典的值

如何在图中标记平均点?

如何在Python中获取`Genericums`超级类型?

CommandeError:模块numba没有属性generated_jit''''

为什么\b在这个正则表达式中不解释为反斜杠

如何使用Numpy. stracards重新编写滚动和?

如何在两列上groupBy,并使用pyspark计算每个分组列的平均总价值

干燥化与列姆化的比较

BeautifulSoup-Screper有时运行得很好,很健壮--但有时它失败了::可能这里需要一些更多的异常处理?

查看pandas字符列是否在字符串列中

如何获得3D点的平移和旋转,给定的点已经旋转?

如何重新组织我的Pandas DataFrame,使列名成为列值?

上传文件并使用Panda打开时的Flask 问题

try 在单个WITH_COLUMNS_SEQ操作中链接表达式时,使用Polars数据帧时出现ComputeError

将鼠标悬停在海运`pairplot`的批注/高亮显示上