代码之家  ›  专栏  ›  技术社区  ›  Xiong Chiamiov

python脚本中的“name”有哪些不同的可能值,它们是什么意思?

  •  7
  • Xiong Chiamiov  · 技术社区  · 15 年前

    检查是否 __name__ == '__main__' 在直接调用文件而不是通过模块调用文件时运行某些代码是一个常见的习惯用法。

    在为django的manage.py编写自定义命令的过程中,我发现自己需要使用 code.InteractiveConsole 这会对标准python shell的用户产生影响。在我正在做的一些测试代码中,我发现在我试图执行的脚本中,我得到了 __name__ __console__ 导致我的代码(依赖于 __main__ 不要跑。

    我相当确定我的原始实现中有一些东西需要更改,但这让我想知道有哪些不同的东西需要更改。 第二代 可以是。我找不到任何关于可能值的文档,也找不到它们的含义,所以我就这样结束了。

    2 回复  |  直到 15 年前
        1
  •  6
  •   S.Lott    15 年前

    document 类代码的。InteractiveIntepreter([局部变量]):
    可选的locals参数指定将在其中执行代码的字典;它默认为使用键新建的字典。 '__name__' 设置为 '__console__' 关键 '__doc__' 设置为 None . 也许你可以改变当地人的观点 __name__ 具有 __main__ 或更改测试条款

    if __name__ == '__main__'
    to  
    if __name__ in set(["__main__", "__console__"])
    

    希望它有帮助。

        2
  •  4
  •   Algorias    15 年前

    __name__ 通常是模块名,但改为 '__main__' 当相关模块直接执行而不是由另一个模块导入时。

    我知道其他值只能由正在运行的代码直接设置。