在python文件中导入自定义函数



嗨,我对从另一个.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只需要子函数,它会自动调用其依赖项

最新更新