【问题标题】:How can I access a multiprocessing list in a python file from another python file?如何从另一个 python 文件访问 python 文件中的多处理列表?
【发布时间】:2020-06-06 16:58:41
【问题描述】:

我有一个文件 check.py 为:

import multiprocessing

class append_data:

    def __init__(self,shared_data):
        self.shared_data = shared_data
        self.shared_data.append(123)
        self.shared_data.append(456)

def func(shared_data):

        appenddata = append_data(shared_data)

if __name__ == '__main__':

        manager = multiprocessing.Manager()
        shared_data = manager.list()

        process1 = multiprocessing.Process(target=func, args= (shared_data,))
        process1.start()
        process1.join()
        print(shared_data)

有没有办法在同一目录中的另一个文件 check1.py 上获取此 'shared_data' 值。

【问题讨论】:

    标签: python python-3.x python-3.7 python-multiprocessing


    【解决方案1】:

    在python中,当我们导入一个模块时,其中的所有代码都会执行,除了if __name__ == '__main__':块。

    只有在模块本身运行时才会执行此块。

    如果你想在另一个模块中使用shared_data变量,只需将用于计算shared_data的代码放在if __name__ == '__main__':块之外,

    
    manager = multiprocessing.Manager()
    shared_data = manager.list()
    
    if __name__ == '__main__':
    
            process1 = multiprocessing.Process(target=func, args= (shared_data,))
            process1.start()
            process1.join()
            print(shared_data)
    

    现在在“check1.py”中

    import check
    
    shared_data = check.shared_data
    

    【讨论】:

      猜你喜欢
      • 2021-08-24
      • 2018-10-28
      • 2011-04-06
      • 1970-01-01
      • 2020-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-09
      相关资源
      最近更新 更多