python中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:>python Test.py

Hello, World!

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

 

你再在cmd中输入:

C:>python

>>>import Test

>>>Test.__name__                #Test模块的__name__

'Test'

>>>__name__                       #当前程序的__name__

'__main__'

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

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

//

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/352556.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LuoguP1268树的重量【构造/思维】By cellur925

题目传送门 Description 给你一个矩阵$M$,$M(i,j)$表示$i$到$j$的最短距离。定义树的重量为树上各边权之和,对于任意给出的合法矩阵$M$,已知它所能表示树的重量是唯一确定的。给出一个矩阵,求它所表示的树的重量。 Sol 这道题我想…

pydev插件安装方法

eclipse 版本: PYDEV:附件在本博客资源下载 下载附件后解压缩,将features和plugins个目录复制粘贴到eclipse相对应的目录下面,然后在启动Eclipse,在Help-》check for UPdates,然后弹出的界面即可看到pydev的插件。 …

将速度加快到自己的个人代码生成器中

Speedment是一个开放源代码工具箱 ,可用于生成Java实体和管理器以与数据库进行通信。 如果您需要域模型的对象关系映射,那么这很好,但是在某些情况下,您可能希望使用数据库作为模板来生成完全不同的东西。 在本文中,我…

python3常用模块_Python3 常用模块1

os模块 通过os模块我们可以与操作系统交互, 控制文件和文件夹 对文件夹操作 # 判断是否为文件夹 os.path.isdir() # 创建文件夹 os.mkdir() # 删除文件夹 os.rmdir() # 列出文件夹内所有文件(返回列表) os.listdir() # 当前文件所在文件夹路径 os.getcwd() # 所在文件夹的路径 …

matlab求最短路径代码_【高等数学】复数,通往真理的最短路径

看图学数学!可能是中国最好的高等数学的基础概念讲解,深入浅出、形象生动。没有高深的数学符号,只有你能懂的数学内容。在实数域中,连接两个真理的最短的路径是通过复数域----雅克阿达马现代数学家对复数的看法如斯,无…

怎么解决python Non-ASCII character错误

第一次接触Python,今天刚在Eclipse上安装完PyDev插件准备开始编程,用用简单例子进行调试竟然出现这样的错误, SyntaxError: Non-ASCII character \xef in file C:\Users\Administrator.NUY67O2SLHT6KM0\workspace\Hello World\scr\Hello.py …

Win7下VS2008破解方法

在Win7系统下,无法像xp下通过“控制面板”卸载的方法重新输入序列号来破解VS2008。 但可以通过以下几个步骤来破解: 1.首先需要安装VS2008,可以安装VS2008专业版90天试用版或VS2008团队版90天试用版都行。 VS2008专业版90天试用版下载地址&am…

五、Kafka 用户日志上报实时统计之应用概述

一、kafka 回顾 1.简介 Kafka 的业务 业务场景: 解除耦合  增加冗余  提高可扩展性  Buffering  异步通信2.介绍 Kafka 的应用场景 Push MessageWebsite Tracking日志收集中心3.实时统计平台搭建注意事项 实时统计平台搭建注意事项: HA特性核心文…

html5移动web开发黑马掌上商城_这套web前端与移动开发教程,帮助了众多小白转行就业...

前端即网站前台部分,运行在PC端,移动端等浏览器上展现给用户浏览的网页。随着互联网技术的发展,HTML5,CSS3,前端框架的应用,跨平台响应式网页设计能够适应各种屏幕分辨率,完美的动效设计&#x…

c++ 使用socket实现C/S端文件的下载传输

首先是服务器端,大致说下流程:服务器创建线程去处理应答accept(),当接受到客户端连接请求时,首先获取要发送的指定的文件数据总大小给客户端,接着就是循环读取要发送的文件数据流向客户端发送文件数据,每次…

Python报错UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe0 in position 0: ordinal not in range

Windows 7机器上安装Python2.7后,下载一些Package包进行setup时总是报错UnicodeDecodeError,如下: File "C:\Python27\lib\mimetypes.py", line 250, in enum_types ctype ctype.encode(default_encoding) # omit in 3.x! Unicode…

[MEGA DEAL]专家级Java捆绑包新手(96%)

在世界上最受欢迎的编程语言中从零变成英雄 嘿,怪胎, 本周,在我们的JCG Deals商店中 ,我们提供了一个极端的报价 。 我们提供的专家Java捆绑版新手 仅售39美元,而不是原始价格1180美元 ,是的&#xff0c…

对二分法思想的体会 及 结队编程情况汇报

算法课第二章作业 1. 对二分法思想的体会: 二分法是分治法的一种,当遇到大问题难以解决的时候,可以使用二分法将问题细化,提高效率,减小问题规模。例如二分搜索,有效率高的优点,但是这个优点的实…

python中对象的概念是什么_简述Python中的面向对象编程的概念

面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。 面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行。为…

python 出现 Handler': No module named win32api

在运行scrapy程序出现Handler: No module named win32api,出现错误的原因是安装的python后要下载相对应的win32api文档进行安装,安装后可以到Python27\Lib\site-packages看一下是否安装成功,若安装完成该文件夹底下就有相应文件。

输入输出

cin/cout 数据类型自动识别/使用简单,缺点是速度慢。若遇到比较大的数据规模,很大可能被卡。改掉这个习惯! scanf()和getchar()函数是从输入流缓冲区中读取值的,而不是从键盘终端缓冲区读取。 读取字符时,scanf()以spa…

C++ Socket编程步骤

sockets(套接字)编程有三种,流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),原始套接字(SOCK_RAW);基于TCP的socket编程是采用的流…

python中的排序方法都有哪些_Python中的排序方法sort(),sorted(),argsort()等

Python list内置sort()方法用来排序,也可以用python内置的全局sorted()方法来对可迭代的序列排序生成新的序列。 1)排序基础 简单的升序排序是非常容易的。只需要调用sorted()方法。它返回一个新的list,新的list的元素基于小于运算符(__lt__)…

javadoc maven_Maven Fluido Skin和Javadoc类图

javadoc maven我使用Maven网站已有一段时间了,对此我感到非常满意。 我不想在Maven 3之后更新我的项目,但是没关系,Maven 3带来了许多新奇的东西。 但是,有两件事使我感到烦恼:缺乏美观和现代的外观,以及浏…

Python的包管理工具

刚开始学习Python时,在看文档和别人的blog介绍安装包有的用easy_install, setuptools, 有的使用pip,distribute,那麽这几个工具有什么关系呢,看一下下面这个图就明白了 下面简单的介绍一下: Distribute是对标准库disu…