我感觉我对python中__name__
环境变量的含义已经有了很好的了解。但是,当我从__init__.py中打印出__name__
变量时,它会打印出其所在目录的名称(即软件包名称)。如何在初始化文件中定义__name__
?
此外,每个python文件是否都有自己的本地__name__
变量?因为它在文件之间不断变化...(也许我不太了解__name__
,我以为我理解了)
编辑:我真的不认为这个问题与名称等于 main 问题是一样的。我了解大多数Python文件中的 name 等同于什么。我仍然对 init 文件中的值感到困惑。
答案 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__'
检查您正在运行文件而不是导入文件的原因。