【发布时间】:2019-10-18 11:30:52
【问题描述】:
main.py:
from module1 import some_function
x=10
some_function()
module1.py:
def some_function():
print str(x)
当我执行main.py 时,它在 moduel1.py 中给出了一个错误,表明 x 不可用。
我的理解是在模块main.py 中使用from x import y 会在main.py 的本地命名空间中带来x.y 的定义/值。由于函数定义和变量 x 都在 main.py 的本地命名空间中,它应该可以正常工作。但这似乎是不正确的低估。那么这里的确切概念是什么?这个概念的官方 python 文档有链接吗?
【问题讨论】:
-
这应该给出一个错误,
some_function首先不接受任何参数... -
@deceze 这不是问题所在。他说,导入函数会引入当前命名空间,其中有一个变量
x。为什么导入的函数不使用当前文件中的x? -
在
module1.py中将def some_function():更改为def some_function(x):。 -
您对
import的假设是正确的。问题在于module1.py中的函数定义。 -
好吧,现在固定的代码示例并没有证明假设的问题......
标签: python python-3.x python-import