一. 一个浅显易懂的比喻

我们在学习python编程时,不可避免的会遇到if __name__=='main'这样的语句,它到底有什么作用呢?

《如何简单地理解Python中的if __name__ == '__main__'》里举了一个通俗易懂的例子:

'''

通俗的理解__name__ == '__main__':假如你叫小明.py,在朋友眼中,你是小明(__name__ == '小明');在你自己眼中,你是你自己(__name__ == '__main__')

if __name__ == '__main__'的意思是:当.py文件被直接运行时,if __name__ == '__main__'之下的代码块将被运行;当.py文件以模块形式被导入时,if __name__ == '__main__'之下的代码块不被运行。

'''

二. 用代码来验证

在桌面上,新建一个test.py文件,写入如下代码:

print('我喜欢学python')

def func():
          print('python是一门优秀的语言')

print(__name__)

if __name__=='__main__':
          func()
          print('学习python让我的世界丰富多彩!')
          

运行代码,输出结果为

在桌面再建一个名为test_import.py的文件,只输入以下代码:

import test

输出结果为

和之前test.py的运行结果相比,只输出了"我喜欢学python", if __name__=='__main__'之后的语句没有输出,还有一个区别是print(__name__)的结果,前者是__main__,后者是test

每个python文件也就是一个模块,都包含了内置的变量__name__,对模块自身来讲,__name__就是'__main__',而当模块被import到其他模块时,这个模块的__name__就等于这个模块名test(不包含.py)。也就是说,当模块被导入时,模块的if __name__=='__main__':代码块将不会被执行

最新文章

  1. PHP require和include的区别
  2. Vue的一个陷阱
  3. Shell 编程基础之 While 练习
  4. 嵌入式文件I/O操作
  5. HBase with MapReduce (Summary)
  6. 【JS】限制两个或多个单选框最多只能选择一个
  7. 【Delphi】无标题移动窗体
  8. [转] Java中的容器
  9. myeclipse 保存时自动格式化代码
  10. js正则函数中test和match的区别
  11. IDEA中的.iml文件和.idea文件夹
  12. tomcat部署jfinal项目
  13. 12.25daily_scrum
  14. 使用PrintDBGridEh进行打印 (转)
  15. 数据加密之DES加密
  16. phpexcel导出excel等比例缩放图片
  17. 最好使的歌词编辑工具--Beslyric
  18. Codeforces Round #463
  19. reservoid sample 蓄水池问题
  20. 1.javascript语言精粹笔记

热门文章

  1. DBProxy 入门到精通系列(一):DBProxy概述
  2. Asp.Net MVC anti-forgery token的问题:nameidentifier not present
  3. 1、Python request(爬虫-百度翻译)
  4. JAVA & C++ 多态
  5. XSS插入绕过一些方式总结
  6. Loadrunder脚本篇——web_custom_request函数介绍
  7. 请求json和xml数据时的方式
  8. <script>放在head内和body内有什么区别
  9. Adding Flexcan driver support on Kernel
  10. java内置注解、元注解和自定义注解