__init__.py中的__name__是什么?

时间:2019-05-20 02:42:49

标签: python environment-variables init

我感觉我对python中__name__环境变量的含义已经有了很好的了解。但是,当我从__init__.py中打印出__name__变量时,它会打印出其所在目录的名称(即软件包名称)。如何在初始化文件中定义__name__

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

编辑:我真的不认为这个问题与名称等于 main 问题是一样的。我了解大多数Python文件中的 name 等同于什么。我仍然对 init 文件中的值感到困惑。

1 个答案:

答案 0 :(得分:3)

__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__'检查您正在运行文件而不是导入文件的原因。