函式的引數可以分為實參和形參
實參:呼叫函式,在括號內傳入的實際值,值可以為常量、變數、表示式或三者的組合。
形參:定義函式,在括號內宣告的變數名,用來接受外界傳來的值
注:形參隨著函式的呼叫而產生,隨著呼叫結束而銷毀
分為位置實參和關鍵字實參
注:混用
1.關鍵字實參必須出現在位置實參後
2.多個位置實參還是按照位置傳參
3.關鍵字實參為沒有從位置實參拿到值的形參傳值,可以不用按照指定順序
def
fn2(a,b,c,d,e,f)
:print
(a,b,c,d,e,f)
fn2(10,
20,30, e=
100, f=
500, d=
200)
包含位置形參、預設形參、可變長形參、關鍵字形參
位置形參可以由位置實參與關鍵字實參來傳值
# positional argument
deffn
(a, b, c)
:print
(a, b, c)
fn(10,20
,30)fn(a=
10, b=
20, c=30)
輸出:10
2030
1020
30
預設形參可以由位置實參與關鍵字實參來傳值,還可以不用傳值(採用自身預設值)
def
fn(a=
10,b=20)
:print
(a, b)
# 預設形參可以由位置實參與關鍵字實參來傳值,還可以不用傳值(採用自身預設值)
fn()
fn(20,30
)fn(a=
200, b=
300)
fn(100
)# 就給a傳
fn(b=
100)
# 就給b傳
輸出:10
2020
30200
300100
2010
100
混用時位置形參與預設形參同時存在,預設形參必須在後。位置形參必須傳值,預設形參分情況傳值
# 位置形參與預設形參同時存在,預設形參必須在後
deffn1
(a,b,c=
10,d=20)
:print
(a, b, c, d)
fn1(
100,
200, d=
1000
)輸出:
100200
101000
可變長形參會以元組形式接受位置形參與預設形參未接受完的所有傳入的位置實參,用索引來取第幾個。可變長形參只能由位置實參來傳值
# 可變長形參只能由位置實參來傳值
deffn
(a, b=10,
*args)
:print
(a, b)
print
(args)
fn(1,20
,100
,200
)# 1給a 20給b,不能用b=20傳 100,200給args
輸出:120(
100,
200)
小細節:可變長形參只能接受位置實參的值,位置實參還必須在關鍵字實參前,導致預設形參只能由位置實參來傳值
關鍵字形參就是出現在 ***** 之後的形參
可變長關鍵字形參:用來接收沒有被關鍵字形參接收完的關鍵字形參,也只能由關鍵字實參來傳值,並且是用字典來存放資料
# 前提:出現在 * 之後的形參
deffn
(a, b=10,
*, c, d=
20, e):
pass
c,d,e都是出現在*之後,都是關鍵字形參,由於必須由 關鍵字實參 來傳值,沒有順序的強行要求
# 可變長關鍵字形參:用來接收沒有被關鍵字形參接收完的關鍵字形參,也只能由關鍵字實參來傳值
# 用字典來存放資料
deffn
(**kwargs)
:print
(kwargs)
fn(a=
10,b=20)
# dic =
fn(**dic)
# 輸出:
def
fn(a, b, c=10,
*args, d, e=
20, f,
**kwargs)
:pass
位置形參:a、b
預設形參:c
可變長位置形參:args
無初值關鍵字形參:d、f
有初值關鍵字形參:e
可變長關鍵字引數:kwargs
1.位置形參與預設形參: 能用 位置實參 關鍵字實參 傳值
2.可變長位置形參:只能 位置實參 傳值
3.所以關鍵字形參:只能 關鍵字實參 傳值
python引數函式 Python函式引數總結
coding utf 8 整理一下python函式的各種引數型別 位置引數 呼叫函式時,傳入的兩個值按照位置順序依次賦給引數 def power x,n s 1 while n 0 n n 1 s s x return s print power 5,2 預設引數 簡化函式的呼叫 def power...
python 引數 Python函式 引數
python中將函式作為引數,區分將引數直接寫成函式名和函式名 的區別。def fun1 fun print print print fun 執行fun1 fun4 時,fun為函式fun3的返回值x print type fun type fun type fun fun 執行fun1 fun4 ...
函式傳引數 python 函式引數
1.位置引數 最熟悉的一種引數形式,優點 簡單。缺點 傳遞引數不夠靈活 2.預設引數 優點 提高了 的復用性 缺點 容易產生二義性 注意事項 一是必選引數在前,預設引數在後。二是如何設定預設引數。當函式有多個引數時,把變化大的引數放前面,變化小的引數放後面。變化小的引數就可以作為預設引數。def p...