Skip to main content
 首页 » 编程设计

python之__init__.py 中的 __name__ 是什么

2025年05月04日25lyhabc

我觉得我已经很好地掌握了 __name__ 环境变量在 python 中的一般含义。但是,当我从 __init__.py 打印出 __name__ 变量时,它会打印出它所在目录的名称(也就是包名称)。 __name__ 如何在 init 文件中定义?

此外,每个 python 文件是否都有自己的本地 __name__ 变量?因为它在文件之间不断变化......(也许我并不像我想的那样理解 __name__)


编辑:我真的不认为这个问题与 __name__ equals __main__ 问题相同。我明白 __name__ 在大多数 python 文件中等于什么。我仍然对 __init__ 文件中的值感到困惑。

请您参考如下方法:

__name__ 是 Python 模块系统中的一个“神奇”变量。它只是模块名称,或者你导入的东西。例如,/radical/__init__.py 意味着可以执行以下操作

import radical 

__init__.py 是您向 Python 表明您希望将文件夹视为模块的方式。这允许从多个文件而不是一个巨大的文件构建模块层次结构。以这段代码为例:/radical/utils.py

import utils from radical 

如果没有 __init__.py,Python 会将其视为普通文件夹,因此不会有模块名称。

如果你直接运行一个脚本,__name__ 被加载为 __main__ 模块,这就是为什么 if __name__ == '__main__' 检查您正在运行文件而不是导入文件。