注意标准库的multiprocessing
包中的these lines:
dict = dict
list = list
将__builtins__
上已有的一些名称重新绑定到模块作用域中有什么意义?它试图实现什么目标?我在git的指责中寻找了一个解释,但这个提交很大,没有相关的评论。
发布于 2017-05-09 01:16:00
这段代码出现在multiprocessing.dummy
中,这是multiprocessing
的一个“伪”版本,它用线程实现了这个功能。如果你往下看几行,你会发现
def Manager():
return sys.modules[__name__]
multiprocessing.dummy
将Manager
实现为一个仅返回multiprocessing.dummy
模块本身的函数,因此multiprocessing.dummy
模块对象必须提供多进程管理器对象的API。台词
dict = dict
list = list
将dict
和list
名称的绑定从内置名称空间复制到模块的名称空间中,以便执行以下操作
m = multiprocessing.dummy.Manager()
d = m.dict()
就像你有一个真正的multiprocessing.Manager()
一样。
https://stackoverflow.com/questions/43853407
复制相似问题