1.形式引數和實際引數
在使用函式時,經常會用到形式引數和實際引數,二者都叫做引數,他們的區別將先通過形式引數與實際引數的作用進行講解。
形式引數和實際引數在作用上面的區別如下:
形式引數:在定義函式時,函式名後面括號中的引數為“形式引數”。
實際引數:在呼叫一個函式時,函式名後面括號中的引數作為“實際引數”,也就是將函式的呼叫者提供給函式的引數稱為實際引數。
根據實際引數型別的不同,可以分為將實際引數的值傳遞給形式引數和將實際引數的引用傳遞給形式引數兩種情況。其中,當實際引數為不餓變物件,進行值傳遞,當實際引數為可變物件時,進行的是引用傳遞。實際上,值傳遞與引用傳遞的基本區別就是,進行值傳遞後,改變形式引數的值,實際引數的值不變,而進行引用傳遞後,改變形式引數的值,實際引數的值也一同改變。
例如:def demo(obj):
* print(“原值:”,obj)
obj+=obj
print(“值傳遞呼叫”)
mot=”唯有在被追趕的時候,你才能真正地奔跑”
print(“函式呼叫前:”,mot)
demo(mot)
print(“函式呼叫後:”,mot)
print(“引用傳遞呼叫“)
list=*[“綺夢”,”香凝”]
print(“函式呼叫前:”,*list**)
*demo(mot)
print(“函式呼叫後:”,list)
執行後的結果:
值傳遞呼叫
函式呼叫前:唯有在被追趕的時候,你才能真正地奔跑
原值:唯有在被追趕的時候,你才能真正地奔跑
函式呼叫後:唯有在被追趕的時候,你才能真正地奔跑
引用傳遞呼叫
函式呼叫前:[“綺夢”,”香凝”]
原值:[“綺夢”,”香凝”]
函式呼叫後:[“綺夢”,”香凝”,”綺夢”,”香凝”]
2.位置引數
位置引數也稱為必備引數,是必須按照正確的順序傳到函式中,及呼叫時的數量和位置必須和定義時時一樣的。
注:
1.在呼叫函式時,指定的實際引數的數量必須與形式引數的數量是一致的,否則將丟擲異常,提示缺少必要的位置引數。
2.在呼叫函式時,如果指定的實際引數與形式引數的位置不一致,但是他們的資料型別一致,那麼就不會丟擲異常,而是產生的結果與預期不符的問題存在。
3.關鍵字引數
關鍵字引數時指使用形式引數的名字來確定輸入的引數值,通過該方式指定實際引數時,不在需要與形式引數的位置完全一致,只要將引數名字寫正確即可,這樣可以避免使用者需要牢記引數位置的麻煩,使得函式的呼叫和引數傳遞更加靈活方便。
例如:有一個函式fun_bmi()包含了3個引數,分別是 weight,height,person
利用關鍵字引數,可以如下的進行呼叫函式:
fun_bmi(height=1.83,weight=60,person=’張三’)
本作品採用《CC 協議》,轉載必須註明作者和本文連結