VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > python入门教程 >
  • 关于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 data-filtered="filtered"><br data-filtered="filtered">

  运行结果如下:

# 这条消息来自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的主程序入口?大概接触的项目太小,我是还没有发现其妙用之处。
 

出处:https://www.cnblogs.com/Monster1728/p/17276550.html

相关教程