Python 中的 __name__ 变量

写 Python 程序的时候,经常会写到 if __name__ == '__main__': ,一直没有很好地理解。Flask 文档提到了一下,顺便做了小实验,总算搞清楚了。

__name__ 变量的值是变化的。假设有个 name.py 文件,如果直接运行它,__name__ 的值为 '__main__';如果从其他地方作为模块导入(import name),__name__ 的值为模块名,即 'name'

实验

1、新建 name.py,输入内容

print __name__

2、直接运行的效果

3、在 ipython 中导入的效果