python文件有两种使用方法:
第一种:直接作为脚本执行
第二种:import到其他的python脚本中被调用(模块重用)执行,也就是作为模块(库)被导入执行
python中 if name == 'main’的作用就是控制这两种情况执行代码的过程,在 if name == ‘main’: 行之后的代码只有在第一种情况下(即文件作为脚本直接执行)才会被执行,而 import 到其他脚本中是不会被执行的
栗子:
test_01.py
# coding=gbk
def father(a, b):
print("这是第一部分的结果")
c = a + b
return c
if __name__ == '__main__':
print(father(2, 1))
print("这是第二部分")
执行结果:
test_01.py引入另一脚本test_02.py中
# coding=gbk
import test_01
if __name__ == '__main__':
print(test_01.father(1,2))
执行结果:
并未输出 “这是第一部分的结果” 即if name==‘main’:内的语句没有被执行。
运行原理
每个python模块都包含内置的变量__name__,当运行模块被执行的时候__name__等于文件名(包含了后缀.py);如果import到其他模块中,则__name__等于模块名称(不包含后缀.py)。而’main’等于当前执行文件的名称(包含了后缀.py)。进而当模块被直接执行时,name == 'main’结果为真,所以后续代码可以继续执行。
在上面的例子中,test_02.py引入了test_01.py,在test_02.py中执行调用时__name__ == 'main’结果不为真,则后续的代码即
这里的内容不会执行。