【问题标题】:What's __name__ in the __init__.py?__init__.py 中的 __name__ 是什么?
【发布时间】:2019-10-06 09:34:16
【问题描述】:

我觉得我对 Python 中的 __name__ 环境变量的含义很了解。但是,当我从 __init__.py 打印出 __name__ 变量时,它会打印出它所在目录的名称(也就是包名称)。 __name__ 如何在 init 文件中定义?

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


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

【问题讨论】:

    标签: python package environment-variables python-import init


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2021-06-08
      • 2013-05-08
      • 1970-01-01
      • 2018-12-29
      • 2015-09-28
      • 2015-07-13
      • 1970-01-01
      相关资源
      最近更新 更多