为什么我不能引用顶级Python模块中的子模块?

2024-05-03 10:05:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Python如何导入和处理子模块感到困惑。 为什么我不能做以下事情

import concurrent
ex = concurrent.futures.ThreadPoolExecutor()

结果是

AttributeError: module 'concurrent' has no attribute 'futures'

查看源代码,我发现并发库文件夹有一个空的__init__.py文件。 Python不应该将文件夹视为一个模块,然后搜索未来子模块(它存在)

我知道我可以作为import concurrent.futures导入,但是我不清楚为什么我不能只导入顶层模块并引用子模块,因为它符合Python __init__.py结构


1条回答
网友
1楼 · 发布于 2024-05-03 10:05:42

对于Python模块,有时它们是分开的,以强制用户显式导入子模块,从而在加载附加了许多子模块的模块时不会使名称空间混乱,并减少内存使用

相关问题 更多 >