关于python 的if __name__ == "__main__"的模块测试

打印 上一主题 下一主题

主题 918|帖子 918|积分 2754

if __name__ == "__main__"
也就是说执行当前文件,不调用模块的时候__name__=__main__
调用模块的时候,测试如下:
1、新建 test01.py 文件测试代码如下
  1. print("这条消息来自test01")
  2. def func():
  3.     print('hello, world!***')
  4.     print("这条消息来自func")
  5. if __name__ == "__main__":
  6.     func()<br><br>
复制代码
  运行结果如下:
  1. # 这条消息来自test01
  2. # hello, world!***
  3. # 这条消息来自func
复制代码
2、新建 testo2.py 文件测试代码如下
  1. import test01<br>
  2. print(__name__)<br>
  3. test01.func()
  4. print('\n')
  5. print('这条消息来自testo2')
  6. print('bye, world!')
  7. print(__name__)
复制代码
运行结果如下:
  1. # 这条消息来自test01    --------------import test01 的时候输出
  2. # __main__       --------------输出当前执行文件的__name__
  3. # hello, world!***  --------------下面这两句调用函数test01.func()时输出<br># 这条消息来自func #
复制代码
  1. # 这条消息来自testo2  -------------继续执行当前文件的代码块<br># bye, world! <br># __main__
复制代码
也就是说:
  1. 在 test2.py 文件中导入了 test1.py 模块使用的是语句 import test1<br>那么在执行 test2.py 文件的过程中,当执行到语句 import test1时,程序会跳转去执行 test1.py 文件<br>比如 print("这条消息来自test01"),可能顺便编译了test01的函数,<br>因为没有调用所以没有执行,调用以后执行函数内部程序
复制代码
关于模块的理解大概就这样,至于为什么要在文件开头写这个if __name__ == "__main__",类似于java的主程序入口?大概接触的项目太小,我是还没有发现其妙用之处。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

自由的羽毛

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表