Python 模块/包导入期间发生了什么

Python 模块/包导入期间发生了什么,python,Python,有人能帮我理解在Python中导入模块时幕后发生了什么吗?是否存在与导入相关的内存或处理开销?还是更像是打开一扇门来扩展本地名称空间?我真的不需要细节,只是一个大概的想法 我还希望了解当导入完整的包时,当包文件夹中没有\uuu init\uuu.py时会发生什么(我认为只有Python 3+) 此外,当该包被导入到作为导入包一部分的模块中时,会发生什么变化?Python是否根据导入包的位置自动执行\uuuuuu init\uuuuuu.py?如果它确实做了类似这样的智能操作,这是否意味着实际上最

有人能帮我理解在Python中导入模块时幕后发生了什么吗?是否存在与导入相关的内存或处理开销?还是更像是打开一扇门来扩展本地名称空间?我真的不需要细节,只是一个大概的想法

我还希望了解当导入完整的包时,当包文件夹中没有
\uuu init\uuu.py
时会发生什么(我认为只有Python 3+)

此外,当该包被导入到作为导入包一部分的模块中时,会发生什么变化?Python是否根据导入包的位置自动执行
\uuuuuu init\uuuuuu.py
?如果它确实做了类似这样的智能操作,这是否意味着实际上最好避免编写包
\uuuu init\uuuu.py

我问这些问题的主要原因是想知道我应该做什么,不应该做什么。导入一个包并从中使用我想要的任何东西似乎都很方便,而不用担心我需要哪些特定的模块。但我不知道这样做的全部影响

编辑:我只想添加一个重要的细节,即我的模块都已加载到内存中。

推荐此选项