python中 if __name__ == "__main__
2019-03-29 本文已影响0人
1直领悟不够
python在导入模块时,模块中的代码可能被执行。例如:
module1.py
#模块1中的代码:
print("hello!")
print("hello!")
>>hello!
>>hello!
在名为module2.py的另一个模块中导入module1.py时,其中的代码会被执行:
import module1
>>hello!
>>hello!
这个行为有时候会导致不便。比如你的模块中可能有测试代码,不希望在导入时执行。那么将模块中所有的代码放置在if name == "main"语句中,即可解决该问题。例如,可以将例子中module1.py的代码改成如下所示:
module1.py
#模块1中的代码:
if __name__ == "__main__"
print("hello!")
print("hello!")
>>hello!
>>hello!
运行改程序时,输出总是不变的。但是在module2.py中导入该模块时,module1.py中的代码不会运行,不会打印hello!示例如下:
#模块2中的代码
import module1