这几天开始学习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__’

1 #Py1.py

2 #!/usr/bin/env python

3 deftest():4 print '__name__ =',__name__

5 if __name__ == '__main__':6 test()

1 #Py2.py

2 #!/usr/bin/env python

3 importPy1.py4 deftest():5 print '__name__ =',__name__

6 if __name__ == '__main__':7 test()8 print ‘Py1.py __name__ = ’,Py1.__name__

执行结果:

__name__=__main__Py1.py__name__=Py1

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

if __name__ == '__main__':

test()

【转载】

http://blog.csdn.net/adrianfeng/article/details/5862376

http://blog.chinaunix.net/uid-25324849-id-3087527.html

python name_python中__name__的使用相关推荐

  1. 微课系列(5):Python程序中__name__变量的用法

    技术要点: 1)Python程序也可以当作模块来使用. 2)当Python程序直接运行时,__name__变量的值是字符串'__main__' 3)当Python程序当做模块使用时,__name__变 ...

  2. 微课系列(7):Python程序中sys.argv的用法

    技术要点: 1)Python程序中如果使用到了sys.argv,这样的程序一般需要在命令提示符环境中运行,而不是在Python开发环境直接中运行. 2)sys.argv是个包含若干字符串的列表,其中s ...

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

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

  4. python编程中的if __name__ == 'main': 的作用和原理

    <背景> 在大多数编排得好一点的脚本或者程序里面都有这段 if __name__ == 'main': <这段代码的功能> 一个python的文件有两种使用的方法: ➤第一是直 ...

  5. Python代码中的if __name__ == ‘__main__‘的作用是什么?

    要搞清楚这个问题,要知道以py作为后缀的Python代码文件,有两种使用方式,第一种方式是直接运行,另一种方式是作为模块被别的py文件导入. 当采用第一种方式直接运行自身时,__name__的值为__ ...

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

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

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

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

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

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

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

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

最新文章

  1. HTML5中关于wheel事件兼容性处理
  2. usnews 计算机专业排名,2019美国大学USNews计算机专业排名
  3. 黑盒测试的用例设计方法
  4. [半翻] 设计面向DDD的微服务
  5. 迪士尼确认《花木兰》档期:7月24日北美等多地上映
  6. scala之Akka的Actor模型(上)
  7. mysql创建视图失败_mysql无法创建视图怎么办
  8. 手扶电梯缺陷检测图像数据集(VOC标签)
  9. 泰凌微8258入门教程 环境篇②——Telink IDE开发环境搭建
  10. “罪魁祸首”已找到,微软回应修改 MIT 开源项目作者版权声明
  11. Excel2003和Excel2007的区别
  12. macbook从硬盘复制文件显示“不能更改xx中的一个或多个项目,因为它们正在使用中”
  13. (一)双目标定OpenCV读双目摄像头合并图像并分割
  14. 查询一整天的数据 0点0分0秒之后 23点59分59秒之前
  15. IPA第八届少儿模特明星盛典 福州赛区 初赛圆满收官
  16. P1010 [NOIP1998 普及组] 幂次方 题解
  17. 软件设计师考试(2018下半年)
  18. Hackthebox:Granny Walkthrough(not use metasploit)
  19. php版本有什么不同,php版本区别_php各版本区别
  20. pdfview4net Crack,印PDF文件的.NET工具

热门文章

  1. 【力扣网练习题】实现 strStr()
  2. 不能忽略的Nginx做web服务器的favicon.ico图像找不到问题
  3. squid中的X-Cache和X-Cache-Lookup的意义
  4. # Ubuntu 配置自带vnc桌面共享
  5. 爬虫之Xpath详解
  6. codeforces3A
  7. yapi-docker
  8. Oracle数据库一些操作信息
  9. 每天一个linux命令(10):cat 命令
  10. 熟人Dubbo 系列1-Dubbo什么