今天在看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...