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设计模式之代理模式实例
Apr 26 Python
Python+MongoDB自增键值的简单实现
Nov 04 Python
python利用lxml读写xml格式的文件
Aug 10 Python
python 简单照相机调用系统摄像头实现方法 pygame
Aug 03 Python
djano一对一、多对多、分页实例代码
Aug 16 Python
python 实现return返回多个值
Nov 19 Python
Python 寻找局部最高点的实现
Dec 05 Python
Python re正则表达式元字符分组()用法分享
Feb 10 Python
对Keras中predict()方法和predict_classes()方法的区别说明
Jun 09 Python
pandas to_excel 添加颜色操作
Jul 14 Python
Python实现迪杰斯特拉算法过程解析
Sep 18 Python
用Python爬虫破解滑动验证码的案例解析
May 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
解析dedecms空间迁移步骤详解
2013/05/15 PHP
基于Jquery的$.cookie()实现跨越页面tabs导航实现代码
2011/03/03 Javascript
更优雅的事件触发兼容
2011/10/24 Javascript
JQ技术实现注册页面带有校验密码强度
2015/07/27 Javascript
jQuery操作属性和样式详解
2016/04/13 Javascript
jQuery+php实时获取及响应文本框输入内容的方法
2016/05/24 Javascript
AngularJs html compiler详解及示例代码
2016/09/01 Javascript
Node.js成为Web应用开发最佳选择的原因
2018/02/05 Javascript
JS实现根据指定值删除数组中的元素操作示例
2018/08/02 Javascript
小程序实现列表删除功能
2018/10/30 Javascript
element-ui中Table表格省市区合并单元格的方法实现
2019/08/07 Javascript
js 实现 list转换成tree的方法示例(数组到树)
2019/08/18 Javascript
微信小程序里引入SVG矢量图标的方法
2019/09/20 Javascript
[03:21]【TI9纪实】Old Boys
2019/08/23 DOTA
python实现忽略大小写对字符串列表排序的方法
2014/09/25 Python
从Python程序中访问Java类的简单示例
2015/04/20 Python
在Python中操作文件之read()方法的使用教程
2015/05/24 Python
简单介绍Python中的readline()方法的使用
2015/05/24 Python
Python win32com 操作Exce的l简单方法(必看)
2017/05/25 Python
python求平均数、方差、中位数的例子
2019/08/22 Python
Python 使用threading+Queue实现线程池示例
2019/12/21 Python
Python3标准库之dbm UNIX键-值数据库问题
2020/03/24 Python
pycharm 实现调试窗口恢复
2021/02/05 Python
css3 box-sizing属性使用参考指南
2013/01/08 HTML / CSS
推荐一些比较有用的css3新属性
2014/11/11 HTML / CSS
Html5 webview元素定位工具的实现
2020/08/07 HTML / CSS
BONIA波尼亚新加坡官网:皮革手袋,鞋类和配件
2016/08/25 全球购物
电信营业员自我评价分享
2014/01/17 职场文书
大班幼儿评语大全
2014/04/30 职场文书
新党章心得体会
2014/09/04 职场文书
公司授权委托书格式样本
2014/10/01 职场文书
出售房屋协议书范本
2014/10/06 职场文书
成都人事代理协议书
2014/10/25 职场文书
2016班级元旦联欢会开幕词
2016/03/04 职场文书
用Python进行栅格数据的分区统计和批量提取
2021/05/27 Python
在前女友婚礼上,用Python破解了现场的WIFI还把名称改成了
2021/05/28 Python