python中if __name__ == '__main__': 的解析

总结:在if __name__ == "__main__":

之后的语句作为模块被调用的时候,语句之后的代码不执行;

直接使用的时候,语句之后的代码执行。通常,此语句用于模块测试中使用。

当你打开一个.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:&gtpython Test.py

Hello, World!

说明:"__name__ == '__main__'"是成立的

?

你再在cmd中输入:

C:&gtpython

&gt&gt&gtimport Test

&gt&gt&gtTest.__name__??????????????? #Test模块的__name__

'Test'

&gt&gt&gt__name__?????????????????????? #当前程序的__name__

'__main__'

无论怎样,Test.py中的"__name__ == '__main__'"都不会成立的!

所以,下一行代码永远不会运行到!

//

python中if __name__ == "__main__":用法解析

2011-08-26 14:28:57

标签:测试 python if _name_ _main_

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://keliang.blog.51cto.com/3359430/649318

想必很多初次接触python的同学都会见到这样一个语句,if __name__ == "__main__":

那么这个语句到底是做什么用的呢?在解释之前,首先要声明的是,不管你是多么小白,你一定要知道的是:

1.python文件的后缀为.py;

2..py文件既可以用来直接执行,就像一个小程序一样,也可以用来作为模块被导入(比如360安全卫士,就是依靠一个个功能模块来实现的,好比360安全卫士本身框架是一个桌面,而上面的图标就是快捷方式,这些快捷方式所指向的就是这一个个功能模块)

3.在python中导入模块一般使用的是import

好了,在确定知道以上几点之后,就可以开始解释if __name__ == "__main__":这个语句了。

首先解释一下if,顾名思义,if就是如果的意思,在句子开始处加上if,就说明,这个句子

python中def main是什么意思_python main用法解析相关推荐

  1. python中def _init_是什么意思_Python中self和__init__的含义与使用

    原文地址https://blog.csdn.net/love666666shen/article/details/78189984 Python中的self 在Python中的类Class的代码中,常 ...

  2. python中def _init_是什么意思_python中的__init__(self)是什么意思呢

    __init__(self)这个时类的初始化函数 classObj:def __init__(self):print 1obj= Obj() #这时候__init__这个函数会被调用,self指obj ...

  3. python中def func是什么意思_Python的函数参数详解

    原标题:Python的函数参数详解 前言 Python中函数的参数可以分为两大类形参和实参~ def func(x, y): # x, y 就是形参 print(x, y) func(2, 3) # ...

  4. python中def _init_是什么意思_python中def __init__():的含义

    def __init__():的含义 关于__init__()函数,其本身是python的构造方法.如果不清楚这一点,看着ta就会一脸懵逼. 这个函数类似init()初始化方法,来初始化新创建对象的状 ...

  5. python中def fun 定义函数列表_python函数

    # -*- coding:utf-8 -*- #yys #python 3.7.2 # 1.定义函数.调用函数 # 函数:组织好的.可重复使用的.用户实现单一或者关联功能的代码段. # 函数能够提高应 ...

  6. python中def fun()是什么意思_python学习函数

    函数 对象 模块 定义函数 def MyFirstFunction(): print('第一个函数') ······ 调用函数 MyFirstFunction() 加入参数 def MySecondF ...

  7. python中def fun 定义函数列表_Python学习之 函数篇

    Python函数 函数就是完成特定功能的一个语句组,这组语句可以作为一个单位使用,并且给它取一个名字. 可以通过函数名在程序的不同地方多次执行(这通常叫函数调用). 函数定义要在函数调用之前,否则函数 ...

  8. python中find函数的使用方法_python find()用法

    案例: ### 1 ### str = "01213456" if str.find("23"):print "YES!" else:pri ...

  9. python中是干嘛的-python中def是做什么的

    Python使用def开始函数定义,紧接着是函数名,括号内部为函数的参数,内部为函数的 具体功能实现代码,如果想要函数有返回值, 在expressions中的逻辑代码中用return返回. 基本使用 ...

  10. python中图形绘制技术的应用_python数据图形化—— matplotlib 基础应用

    matplotlib是python中常用的数据图形化工具,用法跟matlab有点相似.调用简单,功能强大.在Windows下可以通过命令行 pip install matplotlib 来进行安装. ...

最新文章

  1. 慢慢学Linux驱动开发,第七篇,scull的使用
  2. C++ 调用lib 和 dll的 方法 及 动态库DLL与静态库lib的区别
  3. mkswap命令详解
  4. Module build failed (from ./node_modules/babel-loader/lib/index.js) 错误解决
  5. 实验四:xl命令的常见子命令以及操作
  6. Java多线程(一)多线程基础
  7. python调用按键精灵插件_【按键精灵教程】此帖在手,打码不愁
  8. 一个案例,入门Java动态代理技术
  9. 北京化工大学研究生学堂在线矩阵论及其应用答案
  10. word中批量添加印章、签名图片
  11. java软尾山地车评测_如何挑选适合自己的软尾山地自行车
  12. 弱网测试究竟要怎么做,才能防止漏测?
  13. 鼎利测试软件多少钱_鼎利测试软件窗口详细说明.docx
  14. php mysql字符串截取比较读取_MySQL字符串截取 和 截取字符进行查询
  15. Python|计算圆柱体的表面积
  16. HTML代码via浏览器logo,Via浏览器怎么定制首页 几步轻松完成
  17. Linux 要不要防病毒软件或防火墙
  18. AirDisk存宝 【S3和S6后面的USB口是用来干嘛的?有什么作用?】
  19. 按键精灵打怪学习-自动回城路线的判断
  20. U盘装系统,电脑无法识别U盘解决方案

热门文章

  1. python去除pdf水印_聊聊 Python 操作PDF的几种方法(合并、拆分、水印、加密)
  2. 计算机英语带字幕,计算机专业英语听力字幕.doc
  3. 计算机二级wps office考试题库,计算机等级考试题库:WPS Office试题
  4. 【Cactus仙人掌图】仙人掌基础知识学习笔记
  5. [技术讨论]从ERP免费开始到做人做事的讨论
  6. Cocos Creator AnySDK支付问题
  7. 用stream流将list集合根据某个字段分组成Map<String,List<T>>类型的集合
  8. Js 实现十六进制颜色值和RGB颜色值转换整理
  9. 新世界黑客与匿名者组织宣布对美国DNS服务的大规模DDoS攻击负责
  10. vue移动端上传文件插件_轻量级Vue图片上传插件——Vue-core-image-Upload