【发布时间】:2017-03-14 23:21:09
【问题描述】:
我正在探索 Python 中命名空间的概念,但无法解释以下内容:重新加载 builtins 并不能有效地重新加载模块。这是一个例子:
import importlib as il
import os
import mymodule
mymodule.x = 6
print(mymodule.x)
mymodule = il.reload(mymodule)
print(mymodule.x)
import builtins
builtins.print = lambda x : os.system('echo hello')
builtins.print('hi')
builtins = il.reload(builtins)
builtins.print('hi')
其中 mymodule 仅包含赋值 x = 5。输出是:
6
5
hello
hello
也许这是一个愚蠢的问题,但这种行为的原因是什么?
【问题讨论】:
标签: python python-3.x python-3.6 python-importlib built-in