python 传递参数到线程,线程到一个类没有覆盖类本身?

hyrbngr7  于 2023-10-14  发布在  Python
关注(0)|答案(1)|浏览(126)

很肯定,这应该是一个简单的菜鸟的事情或我的概念混乱,但我没有看到它。上下文:我需要做几个重点plotly数字从一个巨大的数字(用作基础数字)和保存它在单独的html文件。因此,我计划在一个类init中加载一次de huge figure,然后将args线程化到第二个类函数中,该函数负责设置限制并将fig保存到html。
理论上(我猜)一切都应该很好,但是当一个参数传递给目标线程时,传递的第一个参数覆盖了包含要剪切的巨大数字的类的self局部var。那么,我应该如何通过args来避免这个首要问题呢???有什么建议吗??.简化示例:
导入线程

class Map ():
  def __init__(self):
         self.fig = load('HugeFig')

 def second (self,arg1,arg2):
         self.fig.show()            %here I set limit but show() exemplifies
                                    %the issue that is reading the '_' from thread args. I 
                                     %thought use self to access self.fig but error : str has no fig 

class Main ():
  def run () :
     Map()                                              % calls the class to load HUGE figure only once.

     threat = threading.Thread(target=Map.second,args=(_,arg1,arg2))

if __name__ == "__main__":

     Main.run()

´´´

daupos2t

daupos2t1#

你只是以错误的方式使用类。
必须将对象/示例赋给变量my_map = Map()
然后使用这个变量target=my_map.second而不是target=Map.second
在不使用_的情况下使用args-它将自动将my_map分配给self

def run () :
    my_map = Map()

    threat = threading.Thread(target=my_map.second, args=(arg1, arg2))

相关问题