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跳出循环语句continue与break的区别
Aug 25 Python
Python3 正在毁灭 Python的原因分析
Nov 28 Python
Python删除windows垃圾文件的方法
Jul 14 Python
Python随机生成数据后插入到PostgreSQL
Jul 28 Python
python3+PyQt5 使用三种不同的简便项窗口部件显示数据的方法
Jun 17 Python
python机器学习实现决策树
Nov 11 Python
python用WxPython库实现无边框窗体和透明窗体实现方法详解
Feb 21 Python
TensorFlow tf.nn.softmax_cross_entropy_with_logits的用法
Apr 19 Python
python中threading开启关闭线程操作
May 02 Python
Python Excel vlookup函数实现过程解析
Jun 22 Python
套娃式文件夹如何通过Python批量处理
Aug 23 Python
pandas map(),apply(),applymap()区别解析
Feb 24 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 压缩文件夹的类代码
2009/11/05 PHP
通过PHP自带的服务器来查看正则匹配结果的方法
2015/12/24 PHP
PHP批量获取网页中所有固定种子链接的方法
2016/11/18 PHP
Laravel 实现密码重置功能
2018/02/23 PHP
JavaScript 对象成员的可见性说明
2009/10/16 Javascript
由Javascript实现的页面日历
2011/11/04 Javascript
JavaScript高级程序设计(第3版)学习笔记11 内建js对象
2012/10/11 Javascript
document.createElement()用法
2013/03/13 Javascript
jQuery实现点击标题输入详细信息
2013/04/16 Javascript
写出高效jquery代码的19条指南
2014/03/19 Javascript
详谈nodejs异步编程
2014/12/04 NodeJs
node.js中的buffer.fill方法使用说明
2014/12/14 Javascript
javascript获取当前鼠标坐标的方法
2015/01/10 Javascript
Bootstrap滚动监听(Scrollspy)插件详解
2016/04/26 Javascript
跨域请求的完美解决方法(JSONP, CORS)
2016/06/12 Javascript
Javascript发送AJAX请求实例代码
2016/08/21 Javascript
详解React-Router中Url参数改变页面不刷新的解决办法
2018/05/08 Javascript
微信小程序基于movable-view实现滑动删除效果
2020/01/08 Javascript
[01:04:01]2014 DOTA2华西杯精英邀请赛5 24 DK VS VG
2014/05/25 DOTA
谈谈如何手动释放Python的内存
2016/12/17 Python
python用post访问restful服务接口的方法
2018/12/07 Python
在python中将字符串转为json对象并取值的方法
2018/12/31 Python
对Python使用mfcc的两种方式详解
2019/01/09 Python
一步步教你用python的scrapy编写一个爬虫
2019/04/17 Python
Python使用Beautiful Soup爬取豆瓣音乐排行榜过程解析
2019/08/15 Python
Python发起请求提示UnicodeEncodeError错误代码解决方法
2020/04/21 Python
Python并发concurrent.futures和asyncio实例
2020/05/04 Python
惠普墨西哥官方商店:HP墨西哥
2016/12/01 全球购物
英国儿童鞋和靴子:Start-Rite
2019/05/06 全球购物
TCP/IP模型的分界线
2012/12/01 面试题
学校安全生产月活动总结
2014/07/05 职场文书
2015年元宵节活动总结
2015/02/06 职场文书
小学生安全教育主题班会
2015/08/12 职场文书
Java9新特性对HTTP2协议支持与非阻塞HTTP API
2022/03/16 Java/Android
《巫师》是美食游戏?CDPR10月将推出《巫师》官方食谱
2022/04/03 其他游戏
ubuntu端向日葵键盘输入卡顿问题及解决
2022/12/24 Servers