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 相关文章推荐
高性能web服务器框架Tornado简单实现restful接口及开发实例
Jul 16 Python
提升Python程序运行效率的6个方法
Mar 31 Python
简单讲解Python中的字符串与字符串的输入输出
Mar 13 Python
Python构造自定义方法来美化字典结构输出的示例
Jun 16 Python
Python+matplotlib实现计算两个信号的交叉谱密度实例
Jan 08 Python
Python paramiko模块的使用示例
Apr 11 Python
解决python中 f.write写入中文出错的问题
Oct 31 Python
用django-allauth实现第三方登录的示例代码
Jun 24 Python
Django 自定义权限管理系统详解(通过中间件认证)
Mar 11 Python
在python中list作函数形参,防止被实参修改的实现方法
Jun 05 Python
python实现简单遗传算法
Sep 18 Python
PYTHON基于Pyecharts绘制常见的直角坐标系图表
Apr 28 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 excel reader读取excel内容存入数据库实现代码
2012/12/06 PHP
ThinkPHP结合ajax、Mysql实现的客户端通信功能代码示例
2014/06/23 PHP
php in_array() 检查数组中是否存在某个值详解
2016/11/23 PHP
Thinkphp5框架ajax接口实现方法分析
2019/08/28 PHP
php+layui数据表格实现数据分页渲染代码
2019/10/26 PHP
js innerHTML 的一些问题的解决方法
2008/06/22 Javascript
web前端设计师们常用的jQuery特效插件汇总
2014/12/07 Javascript
JS实现点击按钮后框架内载入不同网页的方法
2015/05/05 Javascript
JS响应鼠标点击实现两个滑块区间拖动效果
2015/10/26 Javascript
JavaScript中的return语句简单介绍
2015/12/07 Javascript
javascript如何写热点图
2015/12/08 Javascript
原生js仿jquery一些常用方法(必看篇)
2016/09/20 Javascript
bootstrap table 表格中增加下拉菜单末行出现滚动条的快速解决方法
2017/01/05 Javascript
jQuery实现扑克正反面翻牌效果
2017/03/10 Javascript
在一个页面实现两个zTree联动的方法
2017/12/20 Javascript
关于Webpack dev server热加载失败的解决方法
2018/02/22 Javascript
Vue 中使用vue2-highcharts实现top功能的示例
2018/03/05 Javascript
详解VueJs中的V-bind指令
2018/05/03 Javascript
微信小程序使用swiper组件实现类3D轮播图
2018/08/29 Javascript
JavaScript使用prototype属性实现继承操作示例
2020/05/22 Javascript
利用React高阶组件实现一个面包屑导航的示例
2020/08/23 Javascript
[01:28:56]2014 DOTA2华西杯精英邀请赛 5 24 CIS VS DK
2014/05/26 DOTA
[01:05:40]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第三场
2014/05/24 DOTA
python备份文件的脚本
2008/08/11 Python
Python中的time模块与datetime模块用法总结
2016/06/30 Python
微信跳一跳python自动代码解读1.0
2018/01/12 Python
python数据归一化及三种方法详解
2019/08/06 Python
python实现统计代码行数的小工具
2019/09/19 Python
pygame实现烟雨蒙蒙下彩虹雨
2019/11/11 Python
css3图片边框border-image的用法
2017/06/30 HTML / CSS
携程英文网站:Trip.com
2017/02/07 全球购物
耐克奥地利官网:Nike奥地利
2019/08/16 全球购物
简述使用ftp进行文件传输时的两种登录方式?它们的区别是什么?常用的ftp文件传输命令是什么?
2016/11/20 面试题
决心书标准格式
2014/03/11 职场文书
小学开学标语
2014/07/01 职场文书
MySQL查看表和清空表的常用命令总结
2021/05/26 MySQL