__ name __
__ name__ 从格式上来说属于系统变量
- 在当前模块时,__ name__ 的值为‘’__ main__‘’
- 当所在模块被其他模块引用时,__ name__ 的值为 所在模块的文件名(不带后缀)
接下来用代码来测试一下
这里使用了test1.py和test2.py
test1.py
print("这是test1")
print(__name__)
if __name__=="__main__":
print("这是test11")
打印结果:
test2.py
import test1
print(__name__)
if __name__ == '__main__':
print('这是test2')
打印结果:
当在所在模块直接运行时,__ name__表示的是__ main__ ,所以if成立
当在test2中调用test1模块,test1中__ name__ 表示的是 test1 ,所以if不成立,就不会打印test1 中main函数下的内容,而test2中__ name__ 表示的是 __ main__ ,所以if成立