写 Python 程序的时候,经常会写到 if __name__ == '__main__':,一直没有很好地理解。Flask 文档里提了一下,顺便做了个小实验,总算搞清楚了。__name__ 变量的值是变化的。假设有个 name.py 文件,如果直接运行它,__name__ 的值为 '__main__';如果从其他地方作为模块导入(import name),__name__ 的值为模块名,即 'name'

实验

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

print name

  1. 直接运行的效果

  1. 在 ipython 中导入的效果