首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将名称重新分配给自身

将名称重新分配给自身
EN

Stack Overflow用户
提问于 2017-05-09 01:05:47
回答 1查看 2.5K关注 0票数 51

注意标准库的multiprocessing包中的these lines

代码语言:javascript
复制
dict = dict
list = list

__builtins__上已有的一些名称重新绑定到模块作用域中有什么意义?它试图实现什么目标?我在git的指责中寻找了一个解释,但这个提交很大,没有相关的评论。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-09 01:16:00

这段代码出现在multiprocessing.dummy中,这是multiprocessing的一个“伪”版本,它用线程实现了这个功能。如果你往下看几行,你会发现

代码语言:javascript
复制
def Manager():
    return sys.modules[__name__]

multiprocessing.dummyManager实现为一个仅返回multiprocessing.dummy模块本身的函数,因此multiprocessing.dummy模块对象必须提供多进程管理器对象的API。台词

代码语言:javascript
复制
dict = dict
list = list

dictlist名称的绑定从内置名称空间复制到模块的名称空间中,以便执行以下操作

代码语言:javascript
复制
m = multiprocessing.dummy.Manager()
d = m.dict()

就像你有一个真正的multiprocessing.Manager()一样。

票数 50
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43853407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档