浅谈if __name__='__main__'

 if __name__ == '__main__'(四个下划线,每个下划线都是由两个下划线组成)

 首先由几行代码来说明:

 新建一个pi.py的代码

PI=3.14
def main():
	print("PI:",PI)
main()

    另外新建一个area.py

from pi import PI  #从pi模块中引入PI函数

def calc_round_area(radius):
	return PI*(radius ** 2)

def main():
print("round area:",calc_round_area(2))
main()                                                                                                                                          

  运行结果如下

发现一个问题执行area.py程序时,同时也执行了pi.py中的main()函数,这显然不是我们想要的结果,如果添加if __name__ ==' __main__'代码,执行结果如下:

PI=3.14
def main():
	print("PI:",PI)

if __name__ == "__main__":
	main()

执行area.py,只执行area.py中的main()函数,这才是我们想要的结果。

if __name__ == '__main__'其实代表Python程序的模拟入口,由于不同模块之间相互引用,不同模块可能都有这样的定义,但是程序入口只有一个。到底哪个程序入口被选中,取决于__name__的取值。其实这句代码作用就是模块直接运行时,代码块执行,模块被导入时,代码块不执行。

这行代码实质是:编写私有化部分,这行代以上内容可以被其他调用,这行代码以下部分只有自己看见,当被调用时别人无法看见更不能调用执行。

引用资料:https://blog.konghy.cn/2017/04/24/python-entry-program/

原文地址:https://www.cnblogs.com/mernva/p/13798769.html