__init__.py 中的 __name__ 是什么?

What's __name__ in the __init__.py?

我感觉我对python中的__name__环境变量有什么了解了。但是,当我从 __init__.py 打印出 __name__ 变量时,它会打印出它所在目录的名称(也就是包名称)。 __name__ 如何在初始化文件中定义?

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


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

__name__ 是 Python 模块系统中的一个 "magic" 变量。它只是模块名称,或者你导入的东西。例如,/radical/__init__.py 表示可以执行以下操作

import radical

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

import utils from radical

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

如果您直接 运行 脚本,__name__ 将作为 __main__ 模块加载,这就是为什么 if __name__ == '__main__' 检查您是 运行宁文件而不是导入它。