在函数内部对函数进行多处理时出错(仅在PyCharm中运行时才会出错

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

试图在函数内并行运行多个函数。当不在函数内时,代码执行良好。

from multiprocessing import Process


def main():

    def test1():
        print("test1")

    def test2():
        print("test2")

    if __name__ == "__main__":
        p1 = Process(target=test1)
        p2 = Process(target=test2)
        p1.start()
        p2.start()


main()

获取

"AttributeError: Can't pickle local object 'main.<locals>.test1'" 

在PyCharm中出现错误信息。在PyCharm之外,代码可以正常工作,我缺少什么?

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

好吧,我想出了答案,虽然它与我发布的问题不完全相同,我用类使它工作。它将为我做的工作。

from multiprocessing import Process

class Main:

    def test1(self):
        print("test1")

    def test2(self):
        print("test2")


mycl = Main()

if __name__ == "__main__":
    p1 = Process(target=mycl.test1)
    p2 = Process(target=mycl.test2)
    p1.start()
    p2.start()
© www.soinside.com 2019 - 2024. All rights reserved.