关于python 的if __name__ == "__main__"的模块测试
if __name__ == "__main__"
也就是说执行当前文件,不调用模块的时候__name__=__main__
调用模块的时候,测试如下:
1、新建 test01.py 文件测试代码如下
1 2 3 4 5 6 7 8 | print ( "这条消息来自test01" ) def func(): print ( 'hello, world!***' ) print ( "这条消息来自func" ) if __name__ = = "__main__" : func()<br><br> |
运行结果如下:
# 这条消息来自test01 # hello, world!*** # 这条消息来自func
2、新建 testo2.py 文件测试代码如下
import test01
print(__name__)
test01.func() print('\n') print('这条消息来自testo2') print('bye, world!') print(__name__)
运行结果如下:
# 这条消息来自test01 --------------import test01 的时候输出 # __main__ --------------输出当前执行文件的__name__ # hello, world!*** --------------下面这两句调用函数test01.func()时输出
# 这条消息来自func #
# 这条消息来自testo2 -------------继续执行当前文件的代码块
# bye, world!
# __main__
也就是说:
在 test2.py 文件中导入了 test1.py 模块使用的是语句 import test1
那么在执行 test2.py 文件的过程中,当执行到语句 import test1时,程序会跳转去执行 test1.py 文件
比如 print("这条消息来自test01"),可能顺便编译了test01的函数,
因为没有调用所以没有执行,调用以后执行函数内部程序
关于模块的理解大概就这样,至于为什么要在文件开头写这个if __name__ == "__main__",类似于java的主程序入口?大概接触的项目太小,我是还没有发现其妙用之处。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)