像java、C语言一样Python语言也有主方法入口。
1.常见的编程语言主方法对比
| 语言 | 主方法 |
|---|---|
| java | public static void main(String[] args) |
| c | int main(int argc, char *argv[]) |
| python | if __name__=='__main__' : |
2.python主方法
def hello():
print('hello,python')
if __name__ == '__main__':
hello()
运行结果:
hello,python
__name__属于python中的一个内置属性,通常来说一个py文件可以直接执行和被其他模块导入,程序第一次导入指定文件时,会执行三个步骤: 1. 找到模块文件 2. 编译成位码(需要时) 3. 执行模块的代码来创建其所定义的对象
简单来说,该语句用来当文件当作脚本运行时候,就执行代码;但是当文件被当做Module被import的时候,就不执行相关代码。
例如:
有以下模块,demo/demo.py
def hello():
print('hello,python')
print('load model...')
if __name__ == '__main__':
hello()
运行结果:
load model...
hello,python
从上面的结果可以看出,在执行if后面的语句之前,print语句已经执行过了,也就是说程序执行并不是从main开始的。
如果当成模块引入:
from demo.demo import *
def print_hi(name):
print(f'Hi, {name}') # Press Ctrl+F8 to toggle the breakpoint.
if __name__ == '__main__':
print_hi('PyCharm')
运行结果:
load model...
Hi, PyCharm