Python程式執行順序

2021-09-30 17:20:05 字數 1758 閱讀 3947

#示例**基於py3.6

一直對python程式的執行順序有些疑惑,例如python程式是順序執行的,那怎麼還有main函式的出現呢?

在查閱了資料後,參見這裡後,算是有點明白了:

1.python程式是順序執行的,而c++中main()是程式的入口

例如以下**,結果如注釋所示,這裡雖然有個main函式,但是最先輸出的不是「main」而是「test1」:

#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__為檔名

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(),從上而下順序執行。

程式執行順序

public class testa 類b public class testb 類 parent public class parent private testa testa2 newtesta parent變數 public parent parent的子類subclass public cl...

MFC程式執行順序

2 winmain登場 extern c int winapi twinmain hinstance hinstance,hinstance hprevinstance,lptstr lpcmdline,int ncmdshow twinmain函式的 t 是為了支援unicode而準備的乙個巨集。...

MFC程式執行順序

2 winmain登場 extern c int winapi twinmain hinstance hinstance,hinstance hprevinstance,lptstr lpcmdline,int ncmdshow twinmain函式的 t 是為了支援unicode而準備的乙個巨集。...