Bootstrap

Python程序执行顺序

参考博客
Python程序执行顺序
Python的代码执行顺序

1.python程序是顺序执行的,不同于C中从main入口

例如以下代码,这里虽然有个main函数,但是最先输出的不是“main”而是“test1”:

#test1
print ("test1")            # 第1步
def Fun():                 # 第7步
    print ("Fun")          # 第8步
def main():                # 第4步
    print ("main")         # 第5步
    Fun()                  # 第6步
if __name__ == '__main__': # 第2步
    main()                 # 第3步

运行结果

test1
main
Fun
2.一段python程序以.py文件运行时,文件属性__name__为main;作为模块导入时,文件属性__name__为文件名:
#test.py
def Fun():
    print ("Fun")
if __name__ == '__main__':
    print ("main")
    Fun()

运行结果

main
Fun

在这里插入图片描述

总结

python使用缩进对齐组织代码的执行,所有没有缩进的代码(非函数定义和类定义),都会在载入时自动执行,这些代码,可以认为是Python的main函数。

每个文件(模块)都可以任意写一些没有缩进的代码,并且在载入时自动执行,为了区分主执行文件还是被调用的文件,Python引入了一个变量__name__,当文件是被调用时,__name__的值为模块名,当文件被执行时,__name____main__。这个特性,为测试驱动开发提供了极好的支持,我们可以在每个模块中写上测试代码,这些测试代码仅当模块被Python直接执行时才会运行,代码和测试完美的结合在一起。

;