if __name__ == '__main__'

参考文献:

http://www.cnblogs.com/xuxm2007/archive/2010/08/04/1792463.html

http://bbs.csdn.net/topics/320265093

转载请附上以上链接。

文献1:

当你打开一个.py文件时,经常会在代码的最下面看到if __name__ == ‘__main__‘:,现在就来介 绍一下它的作用.

模块是对象,并且所有的模块都有一个内置属性 __name__。一个模块的 __name__ 的值取决于您如何应用模块。如果 import 一个模块,那么模块__name__ 的值通常为模块文件名,不带路径或者文件扩展名。但是您也可以像一个标准的程序样直接运行模块,在这 种情况下, __name__ 的值将是一个特别缺省"__main__"。

///////////////////////////////////////////////////////////////////////////////////////////////////

在cmd 中直接运行.py文件,则__name__的值是‘__main__‘;

而在import 一个.py文件后,__name__的值就不是‘__main__‘了;

从而用if __name__ == ‘__main__‘来判断是否是在直接运行该.py文件

详细例子,点击文献1.

文献2:

你运行当前脚本,就会执行if __name__=="__main__"下的函数,如果你是当模块被其他程序import的,那么就不会执行。主要是测试用,测试你写的这个模块有没有实现你想要的功能。

一般来说python写的文件既可以运行,也可以作为模块来被其他程序调用。

当程序是自身运行时,其__name__的值就是字符串"__main__"了,如果是被其他程序调用,那么它的__name__的值就不是字符串"__main__",使用下面这个判断的作用就是使程序只有在自身被运行的情况下才执行,如果只是被调用,那么就不运行了。

例如,有一个python程序是main.py,代码如下:

1 def run():
2     print "你好,世界!"
3
4 if __name__=="__main__":
5     run()

当你双击main.py时,那么这个程序就会运行了——因为它的__name__的值为"__main__"。

当你在其它程序中调用这个main.py文件,例如use.py:

1 import main.py #此处把前面的main.py作为模块调用
2
3 if __name__=="__main__":
4     main.run() #调用main.py中的run()函数!

if __name__ == '__main__'

时间: 2024-10-26 02:24:01

if __name__ == '__main__'的相关文章

python中if __name__ == '__main__':

Using a module's __name__ Example? 8.2.? Using a module's __name__ #!/usr/bin/python # Filename: using_name.py if __name__ == '__main__': print 'This program is being run by itself' else: print 'I am being imported from another module' Output $ pytho

python   __name__=='__main__' 用法

python 文件的后缀为.py,比如 name.py python 文件可以直接执行,也可以被导入.调用,比如import name; script 1: #!/bin/python # Filename:name.py if __name__=='__main__':     print 'This program is being run by itself' else:     print 'I am being imported from another module' script

if __name__ == '__main__' 如何正确理解

今天刷知乎,突然看到这个问题,发现很多人都是简单的回答了一下,对于很多人来说,更准确的说应该是大部分的 Python 初学者,这样的回答很容易让人理解.所以这里我来做说一下,希望能把这个问题说明白. 先举一个例子:假设我们有一个add.py文件,里面的代码是这样: def add(a, b):    return a + badd(1,2)#用于测试上面函数是否正常 这里就是一个求两数之和的函数,然后我在另一个文件中调用这个模块,这个时候就会把add(1,2)也运行,但是我是不希望运行add(1

【Python中if __name__ == '__main__': 的解析】

在很多Python代码中,在代码的最下方会看到  if __name__ == '__main__':,这段代码到底有什么用呢? 在理解这个语句的作用前,需要知道的是,一般的Python文件后缀为.py,其可以拿来执行,也可以用来作为模块使用import导入.当Python解析器读取一个源文件时它会执行所有的代码.在执行代码前会定义一些特殊的变量.如果解析器运行的模块(源文件)作为主程序,它将会把__name__变量设置成"__main__".如果只是引入其他的模块,__name__变

python unittest不执行"if __name__ == '__main__' "问题

问题: selenium导入unittest框架和HtmlReport框架后,HtmlReport不被执行. 假设代码为: from selenium import webdriver import unittest class Test(unittest.TestCase): print "this is class Test" def setup(self): print "this is setup" def test_1(self): print "

扫盲贴000---关于python中的if __name__ == '__main__'

对于python中的__name__变量,根据调用python文件的方式不同,__name__变量的值也会不同.假如我有一个名为hello_world.py的python脚本,当我的目的是直接运行这个文件"python hello_world.py"的时候,这个时候对于hello_world.py的__name__变量的值为"__main__".但是当我们把hello_world.py作为一个模块被另一个模块引入的时候"import hello_world

python中if __name__==’__main__’的作用

意思是如果该.py文件是自己执行则__name__被赋值为__main__,否则赋值为文件名. 作用: 有句话经典的概括了这段代码的意义: "Make a script both importable and executable" 意思就是说让你写的脚本模块既可以导入到别的模块中用,另外该模块自己也可执行. 举例: 先写一个模块: #module.py def main(): print "we are in %s"%__name__ if __name__ ==

python之if __name__ == '__main__'

概要: 之前一直在写shell最近在学习python,在学习中看到书上举例的代码有这样一行: if __name__ == '__main__' 百度看了很多解释也没彻底弄懂,自己又继续研究最后总结一下,如有不对的地方请根正不胜感激. 网上的解释很多都是说这句代码的含义是为了调用.说的对,但是不全,为了更好的理解我写了两个脚本进行测试(这里我直接在虚拟机上编写了学习的时候还是建议使用Python的IDE来提高我们的效率) 脚本1: [[email protected] tmp]# cat nam

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

当你打开一个.py文件时,经常会在代码的最下面看到if __name__ == '__main__':,现在就来介 绍一下它的作用. 模块是对象,并且所有的模块都有一个内置属性 __name__.一个模块的 __name__ 的值取决于您如何应用模块.如果 import 一个模块,那么模块__name__ 的值通常为模块文件名,不带路径或者文件扩展名.但是您也可以像一个标准的程序样直接运行模块,在这 种情况下, __name__ 的值将是一个特别缺省"__main__". //////

FAQ: Python中if __name__ == '__main__':作用

#hello.pydef sayHello(): str="hello" print(str); if __name__ == "__main__": print ('This is main of module "hello.py"') sayHello() python作为一种脚本语言,我们用python写的各个module都可以包含以上那么一个类似c中的main函数,只不过python中的这种__main__与c中有一些区别,主要体现在: