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 序列化Serialize 和 反序列化Deserialize
Aug 20 Python
python利用urllib实现爬取京东网站商品图片的爬虫实例
Aug 24 Python
python实现微信接口(itchat)详细介绍
Oct 23 Python
Go/Python/Erlang编程语言对比分析及示例代码
Apr 23 Python
Python+OpenCV目标跟踪实现基本的运动检测
Jul 10 Python
Flask框架工厂函数用法实例分析
May 25 Python
Python集中化管理平台Ansible介绍与YAML简介
Jun 12 Python
Django框架中序列化和反序列化的例子
Aug 06 Python
简单了解Pandas缺失值处理方法
Nov 16 Python
图解Python中深浅copy(通俗易懂)
Sep 03 Python
Python中pass的作用与使用教程
Nov 13 Python
浅析Python中的套接字编程
Jun 22 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
Godaddy空间Zend Optimizer升级方法
2010/05/10 PHP
深入php常用函数的使用汇总
2013/06/08 PHP
9段PHP实用功能的代码推荐
2014/10/14 PHP
php使用iconv中文截断问题的解决方法
2015/02/11 PHP
JS、DOM和JQuery之间的关系示例分析
2014/04/09 Javascript
JavaScript常用脚本汇总(一)
2015/03/04 Javascript
JavaScript制作windows经典扫雷小游戏
2015/03/31 Javascript
浅谈javascript的分号的使用
2015/05/12 Javascript
javascript框架设计之种子模块
2015/06/23 Javascript
Javascript之Math对象详解
2016/06/07 Javascript
JavaScript实现使用Canvas绘制图形的基本教程
2016/10/27 Javascript
JavaScript中setTimeout的那些事儿
2016/11/14 Javascript
jQuery插件ImgAreaSelect实现头像上传预览和裁剪功能实例讲解一
2017/05/26 jQuery
浅析webpack 如何优雅的使用tree-shaking(摇树优化)
2017/08/16 Javascript
使用nodeJs来安装less及编译less文件为css文件的方法
2017/11/20 NodeJs
js中的 || 与 && 运算符详解
2018/05/24 Javascript
Vue运用transition实现过渡动画
2019/05/06 Javascript
vue实现短信验证码登录功能(流程详解)
2019/12/10 Javascript
python解析json实例方法
2013/11/19 Python
python创建线程示例
2014/05/06 Python
Python实现的简单算术游戏实例
2015/05/26 Python
Python多线程实现同步的四种方式
2017/05/02 Python
python3.6 实现AES加密的示例(pyCryptodome)
2018/01/10 Python
创建pycharm的自定义python模板方法
2018/05/23 Python
编写多线程Python服务器 最适合基础
2018/09/14 Python
Python3标准库glob文件名模式匹配的问题
2020/03/13 Python
Python脚本导出为exe程序的方法
2020/03/25 Python
Pycharm快捷键配置详细整理
2020/10/13 Python
聊聊Python pandas 中loc函数的使用,及跟iloc的区别说明
2021/03/03 Python
推荐一些比较有用的css3新属性
2014/11/11 HTML / CSS
软件缺陷的分类都有哪些
2014/08/22 面试题
公司会计主管岗位责任制
2014/03/01 职场文书
80后职场人的职业生涯规划
2014/03/08 职场文书
座谈会主持词
2014/03/20 职场文书
秋季运动会开幕词
2015/01/28 职场文书
2015学校图书管理员工作总结
2015/05/11 职场文书