翼度科技»论坛 编程开发 python 查看内容

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

2

主题

2

帖子

6

积分

新手上路

Rank: 1

积分
6
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的主程序入口?大概接触的项目太小,我是还没有发现其妙用之处。

来源:https://www.cnblogs.com/Monster1728/p/17276550.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具