1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Python程序执行顺序

Python程序执行顺序

时间:2021-09-05 10:42:35

相关推荐

Python程序执行顺序

#示例代码基于py3.6

一直对Python程序的执行顺序有些疑惑,例如python程序是顺序执行的,那怎么还有main函数的出现呢?

在查阅了资料后,参见这里后,算是有点明白了:

1.python程序是顺序执行的,而C++中main()是程序的入口

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

#test1print ("test1")def Fun():print ("Fun")def main():print ("main")Fun()if __name__ == '__main__':main()'''test1mainFun'''

2.一段python程序以py文件运行时,文件属性__name__为main;作为模块导入时,文件属性__name__为文件名:

#test.pydef Fun():print ("Fun")if __name__ == '__main__':print ("main")Fun()'''mainFun'''

3.总结

C++中一main函数为执行的起点;Python中首先执行最先出现的非函数定义和非类定义的没有缩进的代码,如示例一之中的第一行

一份程序为了区分主动执行还是被调用,Python引入了变量__name__,当文件是被调用时,__name__的值为模块名,当文件被执行时,__name__为'__main__'

所以会经常看到别人的代码这么写,同时也是典型的python文件结构

#/usr/bin/env/ python #(1) 起始行#"this is a test module"#(2) 模块文档(文档字符串)import sysimport os#(3) 模块导入debug = True #(4) (全局)变量定义class FooClass (object):'foo class'pass #(5) 类定义(若有) def main():'test function'foo = FooClass()if debug:print 'ran test()' #(6) 函数定义(若有) if __name__ == '__main__':main()

若是文件主动执行了,则最好写成跟上面的例子一样,main之前不要有可执行代码,这样做到程序从main()开始,流程逻辑性强

若是文件作为模块被调用,则可以不用写main(),从上而下顺序执行。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。