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设计模式编程中的访问者与观察者模式
Jan 26 Python
横向对比分析Python解析XML的四种方式
Mar 30 Python
python中使用正则表达式的连接符示例代码
Oct 10 Python
python内置函数:lambda、map、filter简单介绍
Nov 16 Python
基于Python pip用国内镜像下载的方法
Jun 12 Python
Python实现使用request模块下载图片demo示例
May 24 Python
python爬虫 猫眼电影和电影天堂数据csv和mysql存储过程解析
Sep 05 Python
解决springboot yml配置 logging.level 报错问题
Feb 21 Python
python 实现围棋游戏(纯tkinter gui)
Nov 13 Python
python实现图像随机裁剪的示例代码
Dec 10 Python
k-means & DBSCAN 总结
Apr 27 Python
python热力图实现的完整实例
Jun 25 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
2020最新CPU的性能排名
2020/04/02 数码科技
使用PHP获取当前url路径的函数以及服务器变量
2013/06/29 PHP
ThinkPHP实现带验证码的文件上传功能实例
2014/11/01 PHP
PHP-FPM 设置多pool及配置文件重写操作示例
2019/10/02 PHP
用php实现分页效果的示例代码
2020/12/10 PHP
让广告代码不再影响你的网页加载速度
2006/07/07 Javascript
jQuery学习7 操作JavaScript对象和集合的函数
2010/02/07 Javascript
js null,undefined,字符串小结
2010/08/21 Javascript
Jquery动态添加及删除页面节点元素示例代码
2014/06/16 Javascript
JS实现的数组全排列输出算法
2015/03/19 Javascript
js实现全国省份城市级联下拉菜单效果代码
2015/09/07 Javascript
JS实现的最简Table选项卡效果
2015/10/14 Javascript
详解JavaScript的另类写法
2016/04/11 Javascript
通过BootStrap实现轮播图的实际应用
2016/09/26 Javascript
JS实现面向对象继承的5种方式分析
2018/07/21 Javascript
详解JavaScript中操作符和表达式
2018/09/12 Javascript
js点击事件的执行过程实例分析【冒泡与捕获】
2020/04/11 Javascript
vue+canvas实现拼图小游戏
2020/09/18 Javascript
Python进程通信之匿名管道实例讲解
2015/04/11 Python
python获取一组数据里最大值max函数用法实例
2015/05/26 Python
python strip() 函数和 split() 函数的详解及实例
2017/02/03 Python
Python设计模式之观察者模式原理与用法详解
2019/01/16 Python
Python爬虫——爬取豆瓣电影Top250代码实例
2019/04/17 Python
Django项目基础配置和基本使用过程解析
2019/11/25 Python
Python非单向递归函数如何返回全部结果
2020/12/18 Python
HTML5之语义标签介绍
2016/07/07 HTML / CSS
Html5获取高德地图定位天气的方法
2019/12/26 HTML / CSS
与UNIX有关的几个名词
2015/09/17 面试题
JAVA软件工程师测试题
2014/07/25 面试题
应届生法律顾问求职信
2013/11/19 职场文书
婚礼主持词开场白
2014/03/13 职场文书
《草原的早晨》教学反思
2014/04/08 职场文书
松材线虫病防治方案
2014/06/15 职场文书
信用卡工资证明格式
2014/09/13 职场文书
股东合作协议书模板2篇
2019/11/05 职场文书
MySQL 覆盖索引的优点
2021/05/19 MySQL