检查是否__name__ == '__main__'是在直接调用文件时运行某些代码的常用习惯用法,而不是通过模块.
在为Django的manage.py编写自定义命令的过程中,我发现自己需要使用code.InteractiveConsole,这会给标准python shell的用户带来影响.在我正在做的一些测试代码中,我发现在我试图执行的脚本中,我得到的__name__是__console__,这导致我的代码(依赖于__main__)不能运行.
我很确定我的原始实现中有一些东西要改变,但它让我想知道__name__可能有什么不同的东西.我找不到关于可能值的任何文档,也没有找到它们的含义,所以这就是我最终的结果.
来自类code.InteractiveInterpreter([locals])的文档:
可选的locals参数指定将在其中执行代码的字典; 它默认为新创建的字典,键'__name__'设置为'__console__'和键'__doc__'设置为None.也许u能电源设为当地人的说法,设置__name__有__main__,或更改测试条款
if __name__ == '__main__'
to
if __name__ in set(["__main__", "__console__"])
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你.
| 归档时间: |
|
| 查看次数: |
1510 次 |
| 最近记录: |