Python中的主函数

在Python代码中,我们常常看到主函数是以if __name__ == '__main__'开头的,比如

Python中的主函数_第1张图片

它的原理是什么呢?

首先要知道,__name__是内置变量,用于表示当前模块的名字。在一个模块中运行以下语句,你会发现输出的是__main__Python中的主函数_第2张图片

但是当我们在另一个模块中import此模块时,输出此模块的__name__,发现结果变成了它的模块名。

Python中的主函数_第3张图片

之所以输出了两遍模块名,是因为test2在输出test模块的内置函数时,同时也执行了test里的代码。 

由此我们可以看出来,__name__是善变的:当模块被直接执行时,__name__=='__main__'结果为真,所以后续的代码可以继续执行;而当模块被调用执行时,结果为假,后续的代码无法继续执行。正是利用了__name__的这一特性,以if __name__ == '__main__'开头的代码块就可以作为主函数了。

你可能感兴趣的:(python)