__name__ 是一个系统变量(前后加了双下划线为系统变量,普通变量不能如此命名)
1、如果当前模块为主模块(即调用其他模块的模块),那么此模块名字即为'__main__'
2、如果当前模块被import,那么此模块名字即为文件名字(不加后边的.py)
#tst1.py
print("tst1 name:", __name__)
if __name__ == '__main__':
print('tst1 run as main!')
#tst2.py
import tst1
print('tst2 name:', __name__)
tst1
print('tst2 run as main!')
1、执行tst1.py结果
tst1 name: __main__
tst1 run as main!
[Finished in 0.0s]
直接作为脚本执行,__name__即为'__main__'
2、执行tst2.py结果
tst1 name: tst1
tst2 name: __main__
tst2 run as main!
[Finished in 0.0s]
tst1被作为模块import,此时tst1.py中__name__即为'tst1',tst2中__name__即为'__main__'