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函数局部变量用法实例分析
Aug 04 Python
Python编程生成随机用户名及密码的方法示例
May 05 Python
Python爬虫之xlml解析库(全面了解)
Aug 08 Python
Python数据结构与算法之常见的分配排序法示例【桶排序与基数排序】
Dec 15 Python
python写一个md5解密器示例
Feb 23 Python
python跳过第一行快速读取文件内容的实例
Jul 12 Python
python的set处理二维数组转一维数组的方法示例
May 31 Python
Python制作简易版小工具之计算天数的实现思路
Feb 13 Python
python pptx复制指定页的ppt教程
Feb 14 Python
解决django xadmin主题不显示和只显示bootstrap2的问题
Mar 30 Python
python中round函数如何使用
Jun 19 Python
python中return不返回值的问题解析
Jul 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
PHP下几种删除目录的方法总结
2007/08/19 PHP
php常用字符串处理函数实例分析
2014/11/22 PHP
php常见的魔术方法详解
2014/12/25 PHP
PHPstorm激活码2020年5月13日亲测有效
2020/09/17 PHP
js播放wav文件(源码)
2013/04/22 Javascript
jquery easyui使用心得
2014/07/07 Javascript
jQuery获取对象简单实现方法小结
2014/10/30 Javascript
JavaScript中的replace()方法使用详解
2015/06/06 Javascript
jquery 追加元素append、prepend、before、after用法与区别分析
2016/12/02 Javascript
JavaScript原生编写《飞机大战坦克》游戏完整实例
2017/01/04 Javascript
Javascript同时声明一连串(多个)变量的方法
2017/01/23 Javascript
bootstrapvalidator之API学习教程
2017/06/29 Javascript
vue-cli之router基本使用方法详解
2017/10/17 Javascript
Express进阶之log4js实用入门指南
2018/02/10 Javascript
vue将毫秒数转化为正常日期格式的实例
2018/09/16 Javascript
基于vue实现移动端圆形旋钮插件效果
2018/11/28 Javascript
JavaScript ES2019中的8个新特性详解
2019/02/20 Javascript
Vue项目服务器部署之子目录部署方法
2019/05/12 Javascript
python strip()函数 介绍
2013/05/24 Python
python中尾递归用法实例详解
2015/04/28 Python
在Python中使用PIL模块处理图像的教程
2015/04/29 Python
编写Python脚本来获取Google搜索结果的示例
2015/05/04 Python
详解Python的Twisted框架中reactor事件管理器的用法
2016/05/25 Python
django 删除数据库表后重新同步的方法
2018/05/27 Python
Python清空文件并替换内容的实例
2018/10/22 Python
Python实现 版本号对比功能的实例代码
2019/04/18 Python
对Django中static(静态)文件详解以及{% static %}标签的使用方法
2019/07/28 Python
在Python3 numpy中mean和average的区别详解
2019/08/24 Python
python利用 keyboard 库记录键盘事件
2020/10/16 Python
Kiwi.com中国:找到特价机票并发现新目的地
2019/10/27 全球购物
会计电算化大学生职业规划书
2014/02/05 职场文书
2014年员工工作总结范文
2014/11/18 职场文书
爱国教育主题班会
2015/08/14 职场文书
Python如何把不同类型数据的json序列化
2021/04/30 Python
详解Vue中$props、$attrs和$listeners的使用方法
2022/02/18 Vue.js
JS实现简单的九宫格抽奖
2022/06/28 Javascript