目录
原因1 类名重复了
案例1 变量名和类名重复
原因1 类名重复了
检查项目代码,是不是其他地方有同名类。
案例1 变量名和类名重复
转自:python3报错Can't pickle <class '__main__.Test'>: it's not the same object as __main__.Test解决 - 知乎
报错示例:
from multiprocessing import Pool
class Test:
def work(self, task):
print(task)
def master(self, tasks):
pool = Pool(2)
pool.map(self.work, tasks)
def run(self):
tasks = ["t1", "t2", "t3"]
self.master(tasks)
if __name__ == '__main__':
Test = Test()
Test.run()
我们再看代码:
这里需要足够的仔细,否则很难发现问题所在~注意看我框出来的代码。
有经验的小伙伴们,应该已经看出了问题所在!
在if __name__ == '__main__':
下,实例化对象时,变量名和类名重复了。
这是造成_pickle.PicklingError: Can't pickle <class '__main__.Test'>: it's not the same object as __main__.Test
错误的根本所在。