我正在尝试使用多处理模块通过python 3.7构建我的项目,并且我需要共享一些变量(例如request.Session)
from multiprocessing import Manager
import requests
if __name__ == "__main__":
mag = Manager()
md = mag.dict()
md["session"] = requests.Session()
print(md)
print(md["session"])
print(md["session"])
origin_dict = dict()
origin_dict["session"] = requests.Session()
print(origin_dict)
print(origin_dict["session"])
print(origin_dict["session"])
[output]:
{'session': <requests.sessions.Session object at 0x000001A5CBEF8898>}
<requests.sessions.Session object at 0x00000170415D54A8>
<requests.sessions.Session object at 0x00000170415D5E48>
{'session': <requests.sessions.Session object at 0x0000017040FE5438>}
<requests.sessions.Session object at 0x0000017040FE5438>
<requests.sessions.Session object at 0x0000017040FE5438>
Manager.dict()结果的输出始终具有不同的指针(好像是卷影副本或深层副本)。
origin_dict
(内置字典)返回预期结果。