1、简介
- 对于很多编程语言来说,程序都必须要有一个入口,比如C 和 C++ 都需要有一个 main 函数来作为程序的入口,即程序的运行会从 main 函数开始。
- 但和C,C++等有所不同的是,Python属于脚本语言,不像编译型语言那样先将程序编译成二进制再运行,python是动态的逐行解释运行,也就是从脚本第一行开始运行,没有统一的入口。
- python文件有两种使用方法:
- 直接作为脚本执行。
- import到其他的python脚本中被调用执行,即作为模块(库)被导入执行。
- 不管是直接运行还是导入,最顶层的代码都会被运行(Python 用缩进来区分代码层次)。但实际使用过程中,python文件作为模块被其它python脚本调用执行的时候,有的代码我们是不希望被运行的。
- 而if name=='main': 的作用就是定义这两种情况执行代码的执行方式,在该语句下的代码只有在文件作为脚本直接执行情况下才会被执行,而import到其他脚本中是不会被执行的。
2、举例
- 我们编写两个模块代码,在demo1中编写add函数,并且调用。在demo2中引入add函数,并且调用。
- 运行后demo2会发现,两个调用都被实现了,这并不是我们想要的结果。
- 对demo1的代码进行修改。
- ,将demo1中的函数调用添加到**if name=='main':**中。
- 再次运行demo2,仅有demo2中的函数调用被实现。
- 因为,demo1是被导入到其他的python脚本中运行的,所以**if name=='main':**下的代码块被执行。