1,預設引數
在形參中預設有值的引數,稱之為預設引數,比如def test(a,b=500),引數b就是預設引數。
呼叫函式時,預設引數的值如果沒有傳入,則取預設值。
注意:預設引數一定要位於引數列表的最後面,比如def test(a,b=500),引數b在後面。
def
info
(name,age=35)
:print
('name:%s'
%name, end=
' ')
print
('age:%s'
%age)
info(
'bayi'
)#name:bayi age:35
info(
'bayi',25
)#name:bayi age:25
2,不定長引數
有時可能需要乙個函式能處理比當初宣告時更多的引數, 這些引數叫做不定長引數,宣告時不會命名。
不定長引數格式:def test(a,b,*args,**kwargs)
加了星號(*)的變數args會存放所有未命名的變數引數,args為元組。
而加**的變數kwargs會存放命名引數,即形如key=value的引數, kwargs為字典。
def
test
(a,b,
*args,
**kwargs)
:print
('a=%d'
%a)print
('b=%d'
%b)print
('args='
,args)
print
('kwargs='
,kwargs)
for key, value in kwargs.items():
print
("key=%s"
% value)
test(1,
2,3,
4,5, m=
6, n=
7, p=8)
'''輸出結果:
a=1b=2
args= (3, 4, 5)
kwargs=
key=8
key=7
key=6
'''#另外一種傳參方式:將乙個元組和字典直接傳進去
c =(3,
4,5)
d =test(1,
2,*c,**d)
# 注意元組與字典的傳參方式
# 輸出結果跟test(1, 2, 3, 4, 5, m=6, n=7, p=8)是一樣的
說明:預設引數在*args後面,**kwargs前面,比如def test(a, *args, b=22, c=33, **kwargs):
如果很多個值都是不定長引數,那麼這種情況下,可以將預設引數放到 *args的後面, 但如果有**kwargs的話,**kwargs必須是最後的
3,把乙個函式作為另乙個函式的引數
def
my_fun
(a,b)
:sum
= a+b
return
sumdef
sum(my_fun,c)
: sum_all = my_fun + c
return sum_all
res =
sum(my_fun(10,
20),30
)print
(res)
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...