1.位置參數(shù)
位置參數(shù)就是普通的參數(shù)定義
def power(x):
print(x**2)
2.默認(rèn)參數(shù)
當(dāng)調(diào)用函數(shù)時(shí)沒有給參數(shù)值,那么會(huì)給使用定義的默認(rèn)值。下面定義的函數(shù)可以定義參數(shù)值也可以不定義,不定義時(shí)x默認(rèn)為9
def power(x = 3):
print(x**2)
默認(rèn)參數(shù)注意事項(xiàng),當(dāng)默認(rèn)參數(shù)使用的是可變的類型參數(shù)時(shí),會(huì)產(chǎn)生不同的結(jié)果。當(dāng)函數(shù)定義默認(rèn)的參數(shù)是一個(gè)空列表時(shí),第一次調(diào)用函數(shù)時(shí),變量L設(shè)為['end'],當(dāng)?shù)诙握{(diào)用時(shí),會(huì)以['end']為默認(rèn)參數(shù),因?yàn)長指向的列表對象地址沒有改變,所有L的值為['end','end']。
In [1]: def power(L = []):
...: L.append('end')
...: return L
...:
In [2]:
In [2]: print(power())
['end']
In [3]: print(power())
['end', 'end']
In [4]: print(power())
['end', 'end', 'end']
3.可變參數(shù)
當(dāng)參數(shù)的個(gè)數(shù)不確定時(shí),可以使用可變參數(shù),只需要在變量前加,當(dāng)想把一個(gè)列表或元祖的值傳入時(shí),只需要在列表或元祖前加即可。
def sum(*num):
temp = 0
for i in num:
temp += i
return temp
print(sum(1, 2, 4, 60))
L = [1, 3, 5, 6]
print(sum(*L))
4.關(guān)鍵字參數(shù)
可以將多個(gè)參數(shù)封裝成dict,下面的函數(shù)除了name和age需要定義外,還可以傳入多個(gè)kv鍵值對,會(huì)被封裝成dict。當(dāng)有一個(gè)dict對象時(shí),只需在對象名前加就可以傳入?yún)?shù)。
def person(name, age, **kw):
print("name =", name, "age = ", age, "kw = ", kw)
person('fgnb', 33, fg = 'nb')
extra = {'1':'1', '2':"2", '3':"3"}
person('fgsb', '33', **extra)
5.命名關(guān)鍵字參數(shù)
主要用于限制關(guān)鍵字參數(shù)的參數(shù)名,比如希望輸入名為a和b的關(guān)鍵字。只需在中間加上一個(gè)號(hào),或者參數(shù)中間有可變參數(shù)
def person(name, age, * , a, b):
print(name, age, a, b)
def person(name, age, *args, city, job): #參數(shù)傳遞時(shí)需要2個(gè)位置參數(shù),city和job的關(guān)鍵字參數(shù)和任意個(gè)參數(shù)變量
print(name, age, args, city, job)
person('fg', 32, a = 'a', b = 'b')
6.參數(shù)的順序
位置參數(shù)、默認(rèn)參數(shù)、可變參數(shù)、命名關(guān)鍵字參數(shù)和關(guān)鍵字參數(shù)。
def f1(a, b, c=0, *args, **kw):
print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw)
def f2(a, b, c=0, *, d, **kw):
print('a =', a, 'b =', b, 'c =', c, 'd =', d, 'kw =', kw)
>>> f1(1, 2)
a = 1 b = 2 c = 0 args = () kw = {}
>>> f1(1, 2, c=3)
a = 1 b = 2 c = 3 args = () kw = {}
>>> f1(1, 2, 3, 'a', 'b')
a = 1 b = 2 c = 3 args = ('a', 'b') kw = {}
>>> f1(1, 2, 3, 'a', 'b', x=99)
a = 1 b = 2 c = 3 args = ('a', 'b') kw = {'x': 99}
>>> f2(1, 2, d=99, ext=None)
a = 1 b = 2 c = 0 d = 99 kw = {'ext': None}
# 可以通過List或者tuple傳遞參數(shù)
>>> args = (1, 2, 3, 4)
>>> kw = {'d': 99, 'x': '#'}
>>> f1(*args, **kw)
a = 1 b = 2 c = 3 args = (4,) kw = {'d': 99, 'x': '#'}
>>> args = (1, 2, 3)
>>> kw = {'d': 88, 'x': '#'}
>>> f2(*args, **kw)
a = 1 b = 2 c = 3 d = 88 kw = {'x': '#'}
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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