python教程—将名称重新分配给本身-Python实用宝典

python教程—将名称重新分配给本身

请注意标准库的多处理包中的这些行:将一些已经在_builtins__上可用的名称重新绑定到模块范围中有什么意义?它想要达到什么目的?我在git blame中搜索了一个解释,但是这个提交很大,没有相关的注释。

注意这些行在标准的多处理包中:

    dict = dict list = list

将一些已经在_builtins__上可用的名称重新绑定到模块范围中有什么意义?它想要达到什么目的?我在git blame中搜索了一个解释,但是这个提交很大,没有相关的注释。

回答

此代码发生在多处理中。一个“假的”多处理版本,它用线程实现了这个功能。如果你往下看几行,你就会看到

    def Manager(): return sys.modules[__name__]

多处理。dummy将Manager实现为一个函数,该函数只返回多处理。虚拟模块本身,所以多处理。虚拟模块对象必须提供一个多处理管理器对象的API。行

    dict = dict list = list

将dict的绑定和列表名称从内建名称空间复制到模块的名称空间,这样就可以这样做

    m = multiprocessing.dummy.Manager() d = m.dict()

就好像您有一个真正的多进程。manager()。

​Python实用宝典 (pythondict.com)
不只是一个宝典
欢迎关注公众号:Python实用宝典

本文由 Python实用宝典 作者:Python实用宝典 发表,其版权均为 Python实用宝典 所有,文章内容系作者个人观点,不代表 Python实用宝典 对观点赞同或支持。如需转载,请注明文章来源。
0

发表评论