python中的參數(shù):形參實參
形參:
形式上的參數(shù),可以理解為數(shù)學(xué)中的x,沒有實際的值,通過別人賦值后才有意義。相當(dāng)于變量
實參:
實際意義上的參數(shù),是一個世紀(jì)存在的參數(shù),可以是字符串或者數(shù)字等。
就是在函數(shù)名中定義一個形參,然后在函數(shù)調(diào)用的時候,給函數(shù)名中的形參傳遞一個實際的參數(shù),這個就是實參。這樣的話執(zhí)行函數(shù)時就會使用參數(shù)執(zhí)行相應(yīng)的操作。
def
func
(
a
)
:
#a是形參
print
(
a
)
func
(
1
)
#1是實參
#代碼運行結(jié)果為:1
形參中*的作用:
def
func
(
a
,
*
args
)
:
print
(
a
)
print
(
args
)
func
(
1
,
2
,
3
,
4
)
#把1傳給a,把2,3,4傳給*args
1、*args是可變參數(shù),args接收的是一個元組;
2、**kw是關(guān)鍵字參數(shù),kw接收的是一個字典;
3、在 lambda 表達(dá)式中使用 *和 **,lambda 表達(dá)式可以當(dāng)作一個匿名函數(shù)。只要是函數(shù)都可以傳參。
實參中*的作用
1、實參中的*號會獲取可迭代對象的 key(索引/鍵值);
def
func
(
n1
,
n2
,
n3
,
n4
,
n5
)
:
return
n1
,
n2
,
n3
,
n4
,
n5
d
=
{
'n1'
:
5
,
'n2'
:
6
,
'n3'
:
7
,
'n4'
:
8
,
'n5'
:
9
}
print
(
func
(
*
d
)
)
# 打印得到的結(jié)果為 ('n1', 'n2', 'n3', 'n4', 'n5')
由于獲取的是可迭代對象的 key,所以函數(shù)的形參可以為位置參數(shù)或可變參數(shù)。
2、實參中的**會獲取可迭代映射的值;
def
func
(
n1
,
n2
,
n3
,
n4
,
n5
)
:
return
n1
,
n2
,
n3
,
n4
,
n5
d
=
{
'n1'
:
5
,
'n2'
:
6
,
'n3'
:
7
,
'n5'
:
8
,
'n4'
:
9
}
print
(
func
(
**
d
)
)
# 打印得到的結(jié)果為(5, 6, 7, 9, 8)
由于獲取的是可迭代對象的值,所以函數(shù)的形參只能為關(guān)鍵字參數(shù),即參數(shù)的個數(shù)和名稱都是固定的。
參數(shù)的混合使用:
1、位置參數(shù)和可變參數(shù)
def
func
(
a
,
*
args
)
:
print
(
a
)
print
(
args
)
func
(
1
,
2
,
3
,
4
)
#把1傳給a,把2,3,4傳給*args
2、位置參數(shù)和默認(rèn)參數(shù)
def
func
(
a
,
b
=
10
)
:
print
(
a
)
print
(
b
)
func
(
1
)
#把1傳給a,但是b不變
3、默認(rèn)參數(shù)和可變參數(shù)混合使用,默認(rèn)參數(shù)在可變參數(shù)的右側(cè) ,需要用關(guān)鍵字指定參數(shù)
def
func
(
*
args
,
a
)
:
print
(
args
)
print
(
a
)
func
(
1
,
2
,
3
,
a
=
10
)
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
