if __name__ == '__main__':的作用
("__name__"的前后是两个"_")
提炼
__name__ 每个Python文件(包含后缀 .py)都有的内置变量,只有在Python文件作为脚本路径时,该Python文件的 __name__ 为 __main__ ,其他的Python文件(包含后缀 .py)的内置变量都为Python文件名。
首先我们需要知道:
1. __name__ 是每个Python文件都有的变量,内置的变量,它在不同的情况下值不同。
2. if __name__ == '__main__': 是一个判断语句,
1)当__name__=__main__时,为真
2)当__name__!=__main__时,为假
其次我们来讨论各种情况下__name__的值:
- 在单个Python文件下
代码:
print(__name__) # __name__是__main__
if __name__ == '__main__':
print(__name__) # __name__是__main__
界面:
运行结果:
C:\pythonProject\microblog\venv\Scripts\python.exe C:/pythonProject/microblog/microblog.py
__main__
__main__
进程已结束,退出代码为 0
- 引用Python包
a) 第一种试验
运行test.py,同上面的内容“单个Python文件”,结果如下:
b)第二种试验
test_import 中引用 test.py ,运行test_import.py
解释:
调用test后,执行test文件中的代码:
print(__name__)
if __name__ == '__main__':
print(__name__)
然后再执行test_import.py中的代码。
运行结果中:
1)test 为test.py中__name_变量,该Python文件没有作为脚本路径, __name__ 为Python文件 名,然后是由" print(__name__) "执行打印的
2)因为test.py中__name_变量值为test,__name__!=__main__,为假,不执行判断语句后的 print(__name__)
3)__main__ 是test_import.py中的代码 print(__name__) 打印的