Python中if __name__ == '__main__'作用解析


Posted in Python onJune 29, 2015

当你打开一个.py文件时,经常会在代码的最下面看到if __name__ == '__main__':,现在就来介 绍一下它的作用.

        模块是对象,并且所有的模块都有一个内置属性 __name__。一个模块的 __name__ 的值取决于您如何应用模块。如果 import 一个模块,那么模块__name__ 的值通常为模块文件名,不带路径或者文件扩展名。但是您也可以像一个标准的程序样直接运行模块,在这 种情况下, __name__ 的值将是一个特别缺省"__main__"。

///////////////////////////////////////////////////////////////////////////////////////////////////

在cmd 中直接运行.py文件,则__name__的值是'__main__';

而在import 一个.py文件后,__name__的值就不是'__main__'了;

从而用if __name__ == '__main__'来判断是否是在直接运行该.py文件

如:

#Test.py
class Test:
    def __init(self):pass
    def f(self):print 'Hello, World!'
if __name__ == '__main__':
    Test().f()
#End

 

你在cmd中输入:

C:>python Test.py
Hello, World!

说明:"__name__ == '__main__'"是成立的

 

你再在cmd中输入:

C:>python
>>>import Test
>>>Test.__name__                #Test模块的__name__
'Test'
>>>__name__                       #当前程序的__name__
'__main__'

无论怎样,Test.py中的"__name__ == '__main__'"都不会成立的!

所以,下一行代码永远不会运行到!

Python 相关文章推荐
wxPython事件驱动实例详解
Sep 28 Python
python和shell实现的校验IP地址合法性脚本分享
Oct 23 Python
Python的subprocess模块总结
Nov 07 Python
python实现分析apache和nginx日志文件并输出访客ip列表的方法
Apr 04 Python
Django中模型Model添加JSON类型字段的方法
Jun 17 Python
Python编程中归并排序算法的实现步骤详解
May 04 Python
Python一句代码实现找出所有水仙花数的方法
Nov 13 Python
使用python3构建文件传输的方法
Feb 13 Python
基于python3 pyQt5 QtDesignner实现窗口化猜数字游戏功能
Jul 15 Python
python PIL和CV对 图片的读取,显示,裁剪,保存实现方法
Aug 07 Python
python安装第三方库如xlrd的方法
Oct 31 Python
python 模拟在天空中放风筝的示例代码
Apr 21 Python
django接入新浪微博OAuth的方法
Jun 29 #Python
python链接Oracle数据库的方法
Jun 28 #Python
python写日志封装类实例
Jun 28 #Python
Python实现的简单hangman游戏实例
Jun 28 #Python
python实现矩阵乘法的方法
Jun 28 #Python
python实现的用于搜索文件并进行内容替换的类实例
Jun 28 #Python
python实现简单ftp客户端的方法
Jun 28 #Python
You might like
php Smarty初体验二 获取配置信息
2011/08/08 PHP
PHP中new static() 和 new self() 的区别介绍
2015/01/09 PHP
JavaScript面向对象之Prototypes和继承
2012/07/12 Javascript
JS在textarea光标处插入文本的小例子
2013/03/22 Javascript
jquery中的过滤操作详细解析
2013/12/02 Javascript
Javascript基础教程之数据类型 (数值 Number)
2015/01/18 Javascript
Backbone.js 0.9.2 源码注释中文翻译版
2015/06/25 Javascript
js+canvas简单绘制圆圈的方法
2016/01/28 Javascript
举例讲解如何判断JavaScript中对象的类型
2016/04/22 Javascript
巧方法 JavaScript获取超链接的绝对URL地址
2016/06/14 Javascript
window.open打开窗口被拦截的快速解决方法
2016/08/04 Javascript
Select2.js下拉框使用小结
2016/10/24 Javascript
学习vue.js计算属性
2016/12/03 Javascript
Vue.js使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用
2017/05/10 Javascript
angular directive的简单使用总结
2017/05/24 Javascript
JavaScript实现的超简单计算器功能示例
2017/12/23 Javascript
JS实现碰撞检测的方法分析
2018/01/19 Javascript
微信网页授权并获取用户信息的方法
2018/07/30 Javascript
vue 组件中使用 transition 和 transition-group实现过渡动画
2019/07/09 Javascript
详解element-ui级联菜单(城市三级联动菜单)和回显问题
2019/10/02 Javascript
[59:35]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#1COL VS Alliance第二局
2016/03/04 DOTA
Python命名空间详解
2014/08/18 Python
python实现获取客户机上指定文件并传输到服务器的方法
2015/03/16 Python
对python指数、幂数拟合curve_fit详解
2018/12/29 Python
Python发起请求提示UnicodeEncodeError错误代码解决方法
2020/04/21 Python
CSS3近阶段篇之酷炫的3D旋转透视
2016/04/28 HTML / CSS
开发人员所需要知道的HTML5性能分析面面观
2012/07/05 HTML / CSS
html5 外链式实现加减乘除的代码
2019/09/04 HTML / CSS
美国NBA官方商店:NBA Store
2019/04/12 全球购物
局域网定义和特性
2016/01/23 面试题
2014幼儿园教师个人工作总结
2014/11/08 职场文书
2014年幼儿园保育工作总结
2014/12/02 职场文书
结婚保证书(卖身契)
2015/02/26 职场文书
资料员岗位职责范本
2015/04/13 职场文书
logback 实现给变量指定默认值
2021/08/30 Java/Android
详解JavaScript的计时器和按钮效果设置
2022/02/18 Javascript