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 相关文章推荐
解读Python编程中的命名空间与作用域
Oct 16 Python
尝试用最短的Python代码来实现服务器和代理服务器
Jun 23 Python
使用Python+Splinter自动刷新抢12306火车票
Jan 03 Python
Python闭包之返回函数的函数用法示例
Jan 27 Python
Selenium鼠标与键盘事件常用操作方法示例
Aug 13 Python
Python绘制的二项分布概率图示例
Aug 22 Python
教你一步步利用python实现贪吃蛇游戏
Jun 27 Python
Python facenet进行人脸识别测试过程解析
Aug 16 Python
用Python实现校园通知更新提醒功能
Nov 23 Python
Python3读写Excel文件(使用xlrd,xlsxwriter,openpyxl3种方式读写实例与优劣)
Feb 13 Python
python爬虫容易学吗
Jun 02 Python
解决pytorch下出现multi-target not supported at的一种可能原因
Feb 06 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
WHOIS类的修改版
2006/10/09 PHP
PHP全概率运算函数(优化版) Webgame开发必备
2011/07/04 PHP
php判断ip黑名单程序代码实例
2014/02/24 PHP
php递归函数三种实现方法及如何实现数字累加
2015/08/07 PHP
ie 处理 gif动画 的onload 事件的一个 bug
2007/04/12 Javascript
javascript 避免闭包引发的问题
2009/03/17 Javascript
window.location.reload()方法刷新页面弹出要再次显示该网页对话框
2013/04/24 Javascript
js获取url参数值的两种方式
2013/09/10 Javascript
回车直接实现点击某按钮的效果即触发单击事件
2014/02/27 Javascript
JavaScript立即执行函数的三种不同写法
2014/09/05 Javascript
纯JS实现旋转图片3D展示效果
2015/04/12 Javascript
详解JavaScript中的4种类型识别方法
2015/09/14 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(二)
2017/01/21 Javascript
vue监听滚动事件实现滚动监听
2017/04/11 Javascript
vue watch自动检测数据变化实时渲染的方法
2018/01/16 Javascript
js经验分享 JavaScript反调试技巧
2018/03/10 Javascript
在iFrame子页面里实现模态框的方法
2018/08/17 Javascript
浅谈vue后台管理系统权限控制思考与实践
2018/12/19 Javascript
Vue实现简单分页器
2018/12/29 Javascript
详解vue-cli+element-ui树形表格(多级表格折腾小计)
2019/04/17 Javascript
js+html实现点名系统功能
2019/11/05 Javascript
详解如何在Javascript和Sass之间共享变量
2019/11/13 Javascript
[05:05]给小松五分钟系列 第二期介绍为什么打DOTA2
2014/07/02 DOTA
python3编写C/S网络程序实例教程
2014/08/25 Python
python中的文件打开与关闭操作命令介绍
2018/04/26 Python
Python将一个CSV文件里的数据追加到另一个CSV文件的方法
2018/07/04 Python
一个可以套路别人的python小程序实例代码
2019/04/09 Python
python进度条显示-tqmd模块的实现示例
2020/08/23 Python
python调用win32接口进行截图的示例
2020/11/11 Python
The Hut德国站点:时装、家居用品、美容等
2016/09/23 全球购物
美国知名的时尚购物网站:Anthropologie
2016/12/22 全球购物
物业管理毕业生的自我评价
2014/02/17 职场文书
治超工作实施方案
2014/05/04 职场文书
拓展策划方案
2014/06/03 职场文书
2016公司新年问候语
2015/11/11 职场文书
小学语文国培研修日志
2015/11/13 职场文书