我正在尝试导入模块中的模块,然后从顶部访问较低级别的模块,但是它不可用。这种行为正常吗?你知道吗
# caller.py
import first
print second.some_var
# first.py
import second
# second.py
some_var = 1
运行caller.py
会产生错误
NameError: name 'second' is not defined
我必须在caller.py
之内import second
吗?这对我来说似乎有悖常理。你知道吗
Tags:
而是使用:
它也被压缩了很多。你为什么这么做?你知道吗
import first
将名称first
导入全局命名空间,但不会将first
中的所有内容导入命名空间。因此,您可以执行以下操作之一:通过
first
访问second
:将
second
直接导入来电.py地址:请注意,可以使用
from first import *
将first
中的所有名称导入命名空间,但通常不建议这样做。你知道吗你可以用
仅仅通过导入
first
就可以让second
自动出现在名称空间中,这会导致很多冲突这也行
通配符的使用
不鼓励这样做,因为如果有人向
first
添加了额外的属性/函数,如果它们碰巧选择了相同的名称,则可能会覆盖您在本地使用的属性相关问题 更多 >
编程相关推荐