python中if __name__ == '__main__':的作用
一个python文件有两种使用方法:
- 作为脚本直接运行
- import到其它文件中被调用(模块重用)
if __name__ == '__main__':
就是用来控制这两种情况下代码执行的过程。在if __name__ == '__main__':
下的代码只有在第一种情况下(即文件作为脚本直接执行)才会被执行,而import到其他文件中是不会被执行的。
每个python文件都包含内置的变量__name__,如果直接被执行,则__name__='__main__'
,如果被当作模块调用,则__name__=模块名。
看看下面的示例就清晰了:
创建test.py文件,内容如下
# vim test.py
print("I'm the first.")
print(__name__)
if __name__=="__main__":
print("I'm the second.")
直接运行文件,这里能看到打印结果__name__='__main__'
,所以执行了后面的print。
# python3 test.py
I'm the first.
__main__
I'm the second.
创建import_test.py,仅调用test模块
# vim import_test.py
import test
运行import_test.py文件,这里test.py文件被调用时__name__=模块名即test,所以if __name__=="__main__"
为假,后面的print没有执行。
# python3 import_test.py
I'm the first.
test
参考文档
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步