在Python中,为什么在无法为函数重新分配任何内容时,是否可以为模块重新分配值?
是不是因为模块是预先编写的脚本而你只是在编写这样的命令时编辑这些脚本?
>>> import math
>>> math.log = 1
>>> math.log
1
答案 0 :(得分:2)
在Python中(与Java等不同)import module
更像是一个命令而不是一个声明,它大致相当于:
math = __import__('math', globals(), locals(), [], -1)
因此,我们在这里加载模块math
并将其引用分配给变量math
。
现在,由于模块也是对象,您可以在其中重新分配任何属性(您不是通过它编辑脚本)。不用说,这是一个非常不受推荐的事情。