if __name__ == '__main__'理解

Python中.py文件既可以用来直接执行,也可以用来作为模块被导入。

__name__是当前模块名,当模块被直接运行时模块名为 __main__ 。if __name__ == '__main__',即判断当模块被直接运行时,以下代码块将被运行;而当模块是被导入时,代码块不被运行。(该语句用于调试代码)

#module.py
def test():
    print("这是个测试")
def main():
    print("we are in %s"%__name__)
if __name__ == '__main__': #判断是否是在直接运行该.py文件
    main()
    test()
输出:
we are in __main__
这是个测试
-------------------------------------------------------------------------------------------
#anothermodule.py
from module import main,test #导入模块
main()
输出:
we are in module
# import一个模块,那么模块__name__ 的值通常为模块文件名。这里只是调用了module中的main()函数,而test()函数没有被调用,说明if __name__ == '__main__'后的代码没有被执行!

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 121,206评论 16 134
  • 19年6月更新:该篇翻译已经被移到 TangYefei's Blog,相较于简书阅读体验会更好,如果喜欢请点个 ❤...
    tangyefei阅读 33,616评论 22 257
  • 一、温故而知新 1. 内存不够怎么办 内存简单分配策略的问题地址空间不隔离内存使用效率低程序运行的地址不确定 关于...
    SeanCST阅读 6,152评论 0 27
  • 用 python 解释器来编程从 Python 解释器退出再进入,那么你定义的所有的方法和变量就都消失了。 为此...
    chen_000阅读 339评论 0 3
  • 1、如何判断一个元素是否出现在窗口可视范围(浏览器的上边缘和下边缘之间,肉眼可视)。 先理解两个概念 元素顶部“露...
    zh_yang阅读 153评论 0 1