一、变量__name__ 解释:
内置系统变量,用于标识所在模块(运行模块)的模块名,让解释器知道当前运行的程序是否在本模块。
二、变量__name__ 的值到底是什么
#大家可以看看__name__实际的值是多少哦
print(__name__)
执行以上输出结果为:
main_
三、__name__案例测试
在同目录python下创建test01.py和test02.py,如下图:
情形1
test01.py内容如下:
def a():
print("我是test01.py文件!!!")
test02.py内容如下:
import test01
print("我是test02.py文件!!!")
运行test02.py文件,结果如下:
我是test01.py文件!!!
我是test02.py文件!!!
情形2
test01.py内容如下:
def a():
if __name__ == '__main__':
print("我是test01.py文件!!!")
test02.py内容如下:
import test01
print("我是test02.py文件!!!")
运行test02.py文件,结果如下:
我是test02.py文件!!!
情形3
test01.py内容如下:
def a():
if __name__ == '__main__':
print("我是test01.py文件!!!")
test02.py内容如下:
import test01
print("我是test02.py文件!!!")
if __name__ == '__main__':
print("我是test02.py加 __name__ == '__main__'的测试!!!")
运行test02.py文件,结果如下:
我是test02.py文件!!!
我是test02.py加 name == 'main’的测试!!!
四、变量__name__ 的使用目的
通过以上案例可看出,只有当文件被执行时,才会满足__name__ == ‘main’,开发过程中,变量__name__ 多数时候被当做代码执行的一个判断条件,当满足条件时执行if内容。其发挥作用最明显的情形就是当存在有import导入时,若导入模块(如:import test01)存在测试内容时,执行test02测试内容时,就会一起执行test01的测试内容。这时候,如果想要避免测试时执行test01的测试内容,可在test01加上__name__ == 'main’判断条件,if内容为测试内容(可test01的情形1到情形2的变化)。
以上就是个人对if name == 'main’的使用理解,有不正确的地方望烧友们指出。