1. if name == 'main': 的含义,why?
含义:在Python中,每个模块都有一个内置变量 name 。当模块直接运行时, name 被赋值为 'main' ;当模块被其他模块导入时, name 被赋值为模块名。 if name == 'main': 就是用于判断当前模块是否是主程序入口 ,在这个代码块内的代码只有在模块直接运行时才会执行,被导入时不会执行。
原因:方便代码的组织和复用。比如一个模块中既包含可被其他模块调用的函数、类等定义,又有一些用于测试的代码。将测试代码放在 if name == 'main': 内,就可以保证测试代码在模块被导入时不会干扰其他程序的运行,只有直接运行该模块时才执行。
例子:
(1)有个程序是test.py
print("开始执行代码")
if name == 'main':
print("当前文件是主程序,正在运行")
else:
print("当前文件被其他程序导入")
直接运行test.py,作为主程序运行,其结果是:
当前文件是主程序,正在运行
(2)再有一个main.py:
import test
print("这是 main.py 文件中的其他代码逻辑")
运行main.py,其结果是:
当前文件被其他程序导入
这是 main.py 文件中的其他代码逻辑

浙公网安备 33010602011771号