【发布时间】:2010-12-30 17:03:30
【问题描述】:
考虑这段代码:
if __name__ == '__main__':
import pdb
pdb.run("interact()\n")
下面一行是什么意思?
if(__name__=='__main__')
我晕倒了。
【问题讨论】:
标签: python
考虑这段代码:
if __name__ == '__main__':
import pdb
pdb.run("interact()\n")
下面一行是什么意思?
if(__name__=='__main__')
我晕倒了。
【问题讨论】:
标签: python
__name__ 是一个在执行的 python 程序中自动设置的变量。如果你 import 来自另一个程序的模块,__name__ 将被设置为模块的名称。如果直接运行程序,__name__ 将设置为__main__。
因此,如果您希望某些事情发生仅当您从命令行运行程序而不是在导入时(例如,库的单元测试),您可以使用 /p>
诡计。这是一个常见的 Python 习语。if __name__ == "__main__":
# will run only if module directly run
print "I am being run directly"
else:
# will run only if module imported
print "I am being imported"
【讨论】:
如果此模块作为独立程序运行,这将是正确的。这样,某些东西既可以作为另一个程序导入的模块,也可以作为独立程序,但如果作为程序执行,则只能执行if语句中的代码。
【讨论】:
这是检查您是直接运行脚本还是包含在库中。
当你像这样运行 python 脚本时:
python myScript.py
它发送一个参数,告诉你运行程序的第一个方法,这被广泛称为“main”,所以当__name__是__main__时,你就知道程序是从命令行执行的或双击的。
【讨论】:
他写了一个python模块,打算通过import使用。
如果模块作为主要 python 脚本传递给解释器,则您引用的代码将运行。这将调用python调试器下的interact()方法。
【讨论】: