重新给自己分配一个名字
注意标准库的multiprocessing
包中的这些行 :
dict = dict list = list
将__builtins__
已有的一些名称重新绑定到模块范围中有什么意义? 它试图达到什么目的? 我在git blame中search了一个解释,但是这个提交很大,没有相关的评论。
这段代码出现在multiprocessing.dummy
,这是一个multiprocessing
线程的“假”版本,实现了线程的function。 如果你看下几行,你会看到
def Manager(): return sys.modules[__name__]
multiprocessing.dummy
Manager
作为函数返回multiprocessing.dummy
模块本身,因此multiprocessing.dummy
模块对象必须提供多处理Manager对象的API。 线
dict = dict list = list
在那里,所以你可以做
m = multiprocessing.dummy.Manager() d = m.dict()
就好像你有一个真正的multiprocessing.Manager()
。