嗨,我对从另一个.py文件导入函数感到困惑
我的问题是这个
我制作了两个.py文件
第一个命名为qq.py
def bb(x):
x = aa(x)
return x+3
def aa(x):
return x+ 6
第二个命名为test.py
from qq import bb
print(bb(10))
*添加注释:test.py
工作
我以为test.py
不起作用
因为函数bb
需要函数aa
,而函数aa
没有导入
为什么这样有效?
谢谢。
这与我几天前发布的一个问题类似。基本上,当您在test.py中导入bb时,它会带来对定义bb的模块名称空间的引用。因此,在test.py中,如果您尝试:
from qq import bb
for x in bb.__globals__:
print(x)
你会得到输出:
__name__
__doc__
__package__
__loader__
__spec__
__file__
__cached__
__builtins__
bb
aa
因此,您可以看到bb和aa都在test.py.中被识别
它会工作,因为python只需要子函数,它会自动调用其依赖项