1.python程序是顺序执行的,而C++中main()是程序的入口
#test1
print ("test1")
def Fun():
print ("Fun")
def main():
print ("main")
Fun()
if __name__ == '__main__':
main()
'''
test1
main
Fun
'''
2.一段python程序以py文件运行时,文件属性__name__为main;作为模块导入时,文件属性__name__为文件名:
#test.py
def Fun():
print ("Fun")
if __name__ == '__main__':
print ("main")
Fun()
'''
main
Fun
'''
3.总结
C++中一main函数为执行的起点;Python中首先执行最先出现的非函数定义和非类定义的没有缩进的代码,如示例一之中的第一行
一份程序为了区分主动执行还是被调用,Python引入了变量__name__,当文件是被调用时,__name__的值为模块名,当文件被执行时,__name__为'__main__'
所以会经常看到别人的代码这么写,同时也是典型的python文件结构:
#/usr/bin/env/ python #(1) 起始行
#"this is a test module" #(2) 模块文档(文档字符串)
import sys
import 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(),从上而下顺序执行。