【转载】Python 中 if __name__ == '__main__': 的作用

# hello.py 

?


1

2

3

4

5

6

7

def 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 中有一些区别,主要体现在:

1、当单独执行该 module 时,比如单独执行以上 hello.py,则输出

?


1

2

3

# python hello.py

This is main of module " hello.py " 

hello

可以理解为"if __name__=="__main__":" 这一句与c中的main()函数所表述的是一致的,即作为入口;

2、当该 module 被其它 module 引入使用时,其中的 if __name__=="__main__": 所表示的 Block 不会被执行,这是因为此时 module 被其它 module 引用时,其 __name__ 的值将发生变化,__name__ 的值将会是 module 的名字。比如在 python shell 中执行 import hello 后,查看hello.__name__ 的值,可以看到:

?


1

2

3

4

>>> import hello

>>> hello. __name__

' hello '

>>>

      因此,在 python 中,当一个 module 作为整体被执行时,moduel.__name__ 的值将是 "__main__";而当一个 module 被其它 module 引用时,module.__name__ 将是 module 自己的名字,当然一个 module 被其它 module 引用时,其本身并不需要一个可执行的入口 main 了。可以说python 中的这种用法很灵活啊。

原文地址:http://blog.chinaunix.net/uid-23802873-id-3143524.html

时间: 2024-12-08 06:35:58

【转载】Python 中 if __name__ == '__main__': 的作用的相关文章

Python中if __name__ == "__main__"详细解释_python

想必很多初次接触python都会见到这样一个语句,if __name__ == "__main__": 那么这个语句到底是做什么用的呢?在解释之前,首先要声明的是,不管你是多么小白,你一定要知道的是: 1.python文件的后缀为.py: 2..py文件既可以用来直接执行,就像一个小程序一样,也可以用来作为模块被导入(比如360安全卫士,就是依靠一个个功能模块来实现的,好比360安全卫士本身框架是一个桌面,而上面的图标就是快捷方式,这些快捷方式所指向的就是这一个个功能模块) 3.在py

浅析python 中__name__ = '__main__' 的作用_python

很多新手刚开始学习python的时候经常会看到python 中__name__ = \'__main__\' 这样的代码,可能很多新手一开始学习的时候都比较疑惑,python 中__name__ = '__main__' 的作用,到底干嘛的? 有句话经典的概括了这段代码的意义: "Make a script both importable and executable" 意思就是说让你写的脚本模块既可以导入到别的模块中用,另外该模块自己也可执行. 这句话,可能一开始听的还不是很懂.下面

【python】if __name__ == '__main__' 浅析

  我们经常在python 程序中看到 if __name__ == '__main__' :这代表什么意思?    python中 模块是对象,并且所有的模块都有一个内置属性 __name__.一个模块的__name__的值取决于您如何应用模块.如果 import 一个模块,那么模块__name__ 的值通常为模块文件名,不带路径或者文件扩展名.但是您也可以像一个标准的程序样直接运行模块,在这 种情况下, __name__ 的值将是一个特别缺省"__main__". 具体一点,在cm

Python中逗号的三种作用实例分析

  本文实例讲述了Python中逗号的三种作用.分享给大家供大家参考.具体分析如下: 最近研究python 遇到个逗号的问题 一直没弄明白 今天总算搞清楚了 1.逗号在参数传递中的使用: 这种情况不多说 没有什么不解的地方 就是形参或者实参传递的时候参数之间的逗号 例如def abc(a,b)或者abc(1,2) 2.逗号在类型转化中的使用 主要是元组的转换 例如: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 >>> a=11 >>> b=(a) &

Python中__init__.py文件的作用详解_python

__init__.py 文件的作用是将文件夹变为一个Python模块,Python 中的每个模块的包中,都有__init__.py 文件. 通常__init__.py 文件为空,但是我们还可以为它增加其他的功能.我们在导入一个包时,实际上是导入了它的__init__.py文件.这样我们可以在__init__.py文件中批量导入我们所需要的模块,而不再需要一个一个的导入. # package # __init__.py import re import urllib import sys impo

python中的__name__的使用

1. 如果模块是被导入,__name__的值为模块名字 2. 如果模块是被直接执行,__name__的值为'__main__' Py1.py #!/usr/bin/env python def test(): print '__name__ = ',__name__ if __name__ == '__main__': test() Py2.py #!/usr/bin/env python import Py1.py def test(): print '__name__ = ',__name_

Python中if

这篇文章主要介绍了Python中if __name__ == '__main__'作用解析,这断代码在Python中非常常见,它有作用?本文就解析了它的作用,需要的朋友可以参考下 当你打开一个.py文件时,经常会在代码的最下面看到if __name__ == '__main__':,现在就来介 绍一下它的作用. 模块是对象,并且所有的模块都有一个内置属性 __name__.一个模块的 __name__ 的值取决于您如何应用模块.如果 import 一个模块,那么模块__name__ 的值通常为模

python tokenize-python中的tokenize有什么作用

问题描述 python中的tokenize有什么作用 Python 编程中的tokenize模块,希望简明回答下有什么作用 这个代码的作用: import tokenize reader=open('Yield.py').next print "readert",reader tokens=tokenize.generate_tokens(reader) print "tokenst",tokens print tokens.next() print tokens.

Python中的线性优化通过编写脚本来解决建模问题

本系列文章将展示如何利用 Pyomo 的能力集成 Python 来建模优化应用程序.本系列的第一篇文章将介绍http://www.aliyun.com/zixun/aggregation/22929.html">基础知识.第 2 部分将介绍如何添加更多工具和构建一种可伸缩的架构.第 3 部分将提供一些使用 IPython 和 pandas 进行投资分析和统计分析的实用示例. 建模是一种解决复杂问题的强大方法.依据图书 Modeling Languages in Mathematical O