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 23 Python
python清除指定目录内所有文件中script的方法
Jun 30 Python
对matplotlib改变colorbar位置和方向的方法详解
Dec 13 Python
快速解决pyqt5窗体关闭后子线程不同时退出的问题
Jun 19 Python
pybind11在Windows下的使用教程
Jul 04 Python
python与mysql数据库交互的实现
Jan 06 Python
python能在浏览器能运行吗
Jun 17 Python
Pycharm2020.1安装中文语言插件的详细教程(不需要汉化)
Aug 07 Python
Python3合并两个有序数组代码实例
Aug 11 Python
基于OpenCV的路面质量检测的实现
Nov 04 Python
Python实战之疫苗研发情况可视化
May 18 Python
python中pandas对多列进行分组统计的实现
Jun 18 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数组
2006/10/09 PHP
详解Window7 下开发php扩展
2015/12/31 PHP
Laravel 微信小程序后端搭建步骤详解
2019/11/26 PHP
用Mootools获得操作索引的两种方法分享
2011/12/12 Javascript
jquery.blockUI.js上传滚动等待效果实现思路及代码
2013/03/18 Javascript
js中判断对象是否为空的三种实现方法
2013/12/23 Javascript
浅析JavaScript中的事件机制
2015/06/04 Javascript
详解JavaScript正则表达式之RegExp对象
2015/12/13 Javascript
jquery遍历函数siblings()用法实例
2015/12/24 Javascript
jquery mobile 实现自定义confirm确认框效果的简单实例
2016/06/17 Javascript
js拼接html字符串的注意事项
2016/10/13 Javascript
详解js中call与apply关键字的作用
2016/11/21 Javascript
详解Angular 4.x Injector
2017/05/04 Javascript
详解AngularJS 模块化
2017/06/14 Javascript
js 两数组去除重复数值的实例
2017/12/06 Javascript
JS 验证码功能的三种实现方式
2018/11/26 Javascript
Node.js实现简单管理系统
2019/09/23 Javascript
Python中输出ASCII大文字、艺术字、字符字小技巧
2015/04/28 Python
浅谈Python爬取网页的编码处理
2016/11/04 Python
用python写个自动SSH登录远程服务器的小工具(实例)
2017/06/17 Python
基于python绘制科赫雪花
2018/06/22 Python
python3.7.0的安装步骤
2018/08/27 Python
Python中修改字符串的四种方法
2018/11/02 Python
Pandas之MultiIndex对象的示例详解
2019/06/25 Python
Django框架models使用group by详解
2020/03/11 Python
Python中and和or如何使用
2020/05/28 Python
浅谈CSS3中的变形功能-transform功能
2017/12/27 HTML / CSS
在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern "C"
2014/08/09 面试题
创业者迈进成功第一步:如何写创业计划书?
2014/03/22 职场文书
六查六看个人剖析材料
2014/10/14 职场文书
2014年扶贫帮困工作总结
2014/12/09 职场文书
研讨会通知
2015/04/27 职场文书
公司员工宿舍管理制度
2015/08/07 职场文书
《我的伯父鲁迅先生》教学反思
2016/02/16 职场文书
vue基于Teleport实现Modal组件
2021/05/31 Vue.js
Python移位密码、仿射变换解密实例代码
2021/06/27 Python