这几天开始学习Python,遇到一些问题,也解决了一些问题。

其中if __ name__ == ‘__ main__’:这句估计很多和我一样的初学者都是不求甚解。
这里作一下解释:

1:__ name__是一个变量。前后加了爽下划线是因为是因为这是系统定义的名字。普通变量不要使用此方式命名变量。
2:Python有很多模块,而这些模块是可以独立运行的!这点不像C++和C的头文件。
3:import的时候是要执行所import的模块的。
4:__ name__就是标识模块的名字的一个系统变量。这里分两种情况:假如当前模块是主模块(也就是调用其他模块的模块),那么此模块名字就是__ main__,通过if判断这样就可以执行“__ mian__:”后面的主函数内容;假如此模块是被import的,则此模块名字为文件名字(不加后面的.py),通过if判断这样就会跳过“__ mian__:”后面的内容。

通过上面方式,python就可以分清楚哪些是主函数,进入主函数执行;并且可以调用其他模块的各个函数等等。

  1. 如果模块是被导入,__name__的值为模块名字
  2. 如果模块是被直接执行,__name__的值为’main
#Py1.py
#!/usr/bin/env python
def test():print '__name__ = ',__name__
if __name__ == '__main__':test()
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
#Py2.py
#!/usr/bin/env python
import Py1.py
def test():print '__name__ = ',__name__
if __name__ == '__main__':test()print ‘Py1.py __name__ = ’,Py1.__name__

执行结果:

__name__=__main__
Py1.py __name__=Py1

通过结果可以知道,Py2.py直接执行,那么内建变量__ name__的值为__ main__,否则为模块的名字,通过这个特性可以在if语句里面添加测试代码,可以提高减少BUG,提高程序的健壮性。

if __name__ == '__main__':test()

python中__name__的使用相关推荐

  1. 浅析python 中__name__ = '__main__' 的作用

    很多新手刚开始学习python的时候经常会看到python 中__name__ = \'__main__\' 这样的代码,可能很多新手一开始学习的时候都比较疑惑,python 中__name__ = ...

  2. python中 __name__及__main()__的妙处02

    python中 __name__及__main()__的妙处 #hello.pydef sayHello(): str="hello" print(str); if __name_ ...

  3. python 中__name__ = '__main__' 的作用

    学习python的时候经常会看到python 中__name__ = \'__main__\' 这样的代码,可能很多新手一开始学习的时候都比较疑惑,python 中__name__ = '__main ...

  4. python中main的作用_浅析python 中__name__ = '__main__' 的作用

    很多新手刚开始学习python的时候经常会看到python 中__name__ = \'__main__\' 这样的代码,可能很多新手一开始学习的时候都比较疑惑,python 中__name__ = ...

  5. python学习笔记26(python中__name__的使用)

    python学习笔记26(python中__name__的使用) 在python中,每个py文件都是一个模块,也都是一个可执行文件,即包含main方法.因此,对每个py文件,可以单独运行,也可以imp ...

  6. python中 __name__及__main()__的妙处

    #hello.pydef sayHello(): str="hello"print(str); if __name__ == "__main__":print ...

  7. python __name__怎么使用_python学习笔记26(python中__name__的使用)

    在python中,每个py文件都是一个模块,也都是一个可执行文件,即包含main方法.因此,对每个py文件,可以单独运行,也可以import它给其他客户使用,这两种情况不一样. 1. 如果模块是被导入 ...

  8. python中__name__属性的取值_Python脚本的“__name__”属性

    每个Python脚本在运行时都有一个"__name__"属性.如果脚本作为模块被导入,则其"__name__"属性的值被自动设置为模块名:如果脚本独立运行,则其 ...

  9. python中 “__name__“的实际应用

    目录 引言 一."__name__" 的作用 二.实际项目的应用 应用情境 解决方案 结语 引言 很多Python源码中,会有一句if __name__ == '__main__' ...

最新文章

  1. 允许用户在web Interface上修改密码
  2. 如何使用资源和样式调整控件外观
  3. 【C++】复制构造函数
  4. Vue.js:监听属性
  5. 禁止 VMware Fusion 自动调整 Windows 分辨率
  6. java enumeration 排序_Java如何对java.util.Enumeration进行排序?
  7. linux 如何查看一个进程空间所装载的共享库
  8. 计算机的组成 —— 存储(内存/硬盘)
  9. 【OUTLINE】使用Oracle Outline技术暂时锁定SQL的执行计划
  10. c语言程序答设计答案张文祥,c语言程序设计答案张文祥
  11. Simulink嵌入式自动代码DSP F28335(4)——SVPWM
  12. 解决在微信下载app需要点击右上角在浏览器中打开下载的问题
  13. 服务器到内地更快的美国HS网络服务器
  14. 好书推荐:《爱因斯坦的错误:天才的人性弱点》
  15. Android 第三方桌面,怎么请求Widget的android.permission.BIND_APPWIDGET
  16. 使用阿里云下载Docker
  17. Android程序员面试必备的知识点,Android程序员
  18. 什么是进修编程言语之前
  19. 自学C++编程,掌握这三项技能就可以工作了
  20. jdk11新特性,是否有必要从JDK8切换到JDK11

热门文章

  1. iOS开发系列--无限循环的图片浏览器
  2. 《Node.js入门》Windows 7下Node.js Web开发环境搭建笔记
  3. Python学习(七) 流程控制if语句
  4. SpringMvc多视图整合(jsp、velocity、freemarker)
  5. DBHelper 使用的是存储过程
  6. 社区电商才是未来,新科技才是社区电商的核心,社区电商如何实现核心竞争力呢?
  7. 47、Power Query-处理典型的中国式二维表格转一维
  8. WSAENOBUFS: No buffer space available in SAP
  9. ALV的SAP自带标准程序实例
  10. 新鲜出炉的家庭贫富评判标准!快看看你家属于小康家庭吗?