2018 04 17 python函式執行順序

2021-08-18 22:48:52 字數 1019 閱讀 1017

今天在看python那個函式的執行順序,因為這段函式執行結果一直沒看懂,

total = 0

def sum(arg1,arg2):

total = arg1 + arg2;

print(" 函式內是區域性變數:", total )

return total

def totalprint( ):

print(' total 的值是 :', total )

return total 

print ( ' 函式求和結果 :'  sum(10, 20 ) )

totalprint( )

print( " 函式外是全域性變數 : " , total )

執行結果是:

函式內是區域性變數: 30

函式求和結果: 30 

total的值是 0

函式外是全域性變數 : 0

網上查函式執行順序為:

執行從程式的第一行**開始,函式定義並不會改變程式的執行流程,但函式**塊中的語句並

不是立即執行的,而是等函式被程式呼叫時才會執行

函式呼叫可以看作程式執行過程的乙個迂迴路徑,遇到函式呼叫時並不會直接執行下一條語句,

而是跳轉到函式體的第一行,繼續執行函式**塊內的所有語句,再跳回原來的地方

所以,函式定義在前面但不會先進行執行,只有等該函式被使用時才會去執行該函式的**內容,

從第一句開始,完成後才繼續原呼叫函式的位置

再看另乙個**:

num = 100 

def func():

num = 200 

print( ' 函式體中的num的值為 : ',num )

func( )

print( ' 函式外num的值為 :',num )

執行結果為:

函式體中num的值為:200 

函式體外num的值為: 100

可以看出:同時定義乙個全域性變數和函式內區域性變數,都可以使用,但

函式內使用的是內部的num區域性變數,函式外使用的就是全域性變數

python order函式 Python函式之二

關鍵字引數 kwargs def foo kw if y in kw print kw y foo x 123,y 1232 如上面的示例關鍵字引數用於函式呼叫,通過 鍵 值 形式加以指定。這種方式可以根據傳入的引數來決定函式的執行方向。可以讓函式更加清晰 容易使用,同時也清除了引數的順序需求,及時...

python中full函式 Python函式混亂

我正在學習 python.我有乙個函式readwrite filename,list filename的型別為string.list是乙個包含要在檔案中重寫的字串的列表.我有乙個簡單的函式呼叫,如下所示 fname hello.txt readwrite xx fname,datalist 我面臨的...

Python 學習筆記 enumerate函式

enumerate 函式用於將乙個可遍歷的資料物件 如列表 元組或字串 組合為乙個索引序列,同時列出資料和資料下標,一般用在 for 迴圈當中。seasons spring summer fall winter list enumerate seasons 0,spring 1,summer 2,f...