Cover image

Python 的Main函数

Oct 16, 2015

Python 之前由于有一些数据要处理,从网上东一块西一块的看过一些资料,但要说系统的学习还是没有的,所以最近这段时间决心看些书查些资料,对Python有些个系统的了解。在这里记录一些学习笔记,希望能坚持下去。

(1) 关于Python的Main函数在哪?

一开始刚接触到Python的时候,看一个py的代码经常第一反应是去找这段代码的main函数,经常却只能见到这么一段代码:

if __name__ == "__main__":
    #主函数语句

原来Python里的Main函数并不需要直接显式的定义调用的,Python是一种解释型语言,所以我们看到py文件中尽管没有任何函数块或者主函数入口也可以执行运行。

在Python里边有着“命名空间”的概念,也就是__name__的值,Python中所有的代码都会有一个命名空间与之相关联。其中,主程序(即python命令直接执行的程序或者python shell中的代码)会与__main__命名空间相关联,而每个模块中的代码(即import要导入的代码)则是与该模块名相同的命名空间里。

如以下例子:

#Filename TestNamespace.py
def funcName():
    print("This is a Test");
if __name__ == "__main__":
    funcname();
    print("Testnamespace Run in Main Namespace");

如果我们直接调用python TestNamespace.py两句话都会输出

This is a Test
Testnamespace Run in Main Namespace

而如果在代码中先import Testnamespace,第二个print则永远调用不出来

>>> import Testnamespace
>>> Testnamespace.funcname()
This is a Test

从而我们可以在每个模块对代码在__main__空间下进行测试,而import该模块后,测试语句则不再起任何作用。


16 Oct 2015

Post by: MetaCoder