今天偶然想到了看到一篇文章是講參數(shù)的淮捆,忽然忘記了python中參數(shù)的種類了后室,就復(fù)習(xí)一下
python函數(shù)定義非常簡單,靈活度很大独撇,除了正常定義使用的必選參數(shù)屑墨,還可以使用默認(rèn)參數(shù),
可變參數(shù)纷铣,關(guān)鍵字參數(shù)卵史,代碼就可以大大簡化。
位置參數(shù)
最基本的參數(shù)
def print(x):
print(x)
對(duì)于上面的參數(shù)搜立,就是一個(gè)位置參數(shù)當(dāng)我們在調(diào)用print函數(shù)是以躯,必須傳入而且只能傳入一個(gè)參數(shù)。
同樣的啄踊,想傳入多個(gè)參數(shù)忧设,傳入的參數(shù)會(huì)按照順序賦值。
默認(rèn)參數(shù)
有時(shí)候颠通,比如我們想打印一個(gè)數(shù)字好幾遍
def print(x,n)
for i in range(n):
print(x)
這樣就做到了打印一個(gè)數(shù)字n遍址晕,但是此時(shí)我們?nèi)绻€想只打印一遍的話,這樣不就比原來復(fù)雜了嗎顿锰?
這時(shí)候默認(rèn)參數(shù)就起到了作用谨垃,如果一個(gè)參數(shù)平時(shí)一般不會(huì)改變,個(gè)別時(shí)候才需要自定義的時(shí)候硼控,就可以使用默認(rèn)參數(shù)
def print(x,n = 1)
for i in range(n):
print(x)
這樣如果不傳入第二個(gè)參數(shù)的話乘客,就默認(rèn)只打印一遍。
需要注意的是
1.默認(rèn)參數(shù)必須放在必選參數(shù)的后面淀歇,如果放在前面易核,函數(shù)怎么確定你穿的是默認(rèn)參數(shù)還是必選參數(shù)。
當(dāng)然有多個(gè)默認(rèn)參數(shù)是浪默,要想準(zhǔn)確地制定牡直,就必須寫成 參數(shù)名=具體數(shù)值 的形式
2.默認(rèn)參數(shù)必須指向不變對(duì)象
可變參數(shù)
可變參數(shù) 顧名思義缀匕,就是傳入?yún)?shù)的個(gè)數(shù)是可以變化的。既可以是1碰逸,2乡小,3,4個(gè)饵史,也可以是零個(gè)满钟。
定義為可變參數(shù)地方法是在前面加一個(gè)*
def print(x,*number)
print(x)
for i in range(number):
print(x)
前面加一個(gè)*,函數(shù)在接收這個(gè)參數(shù)的時(shí)候胳喷,就會(huì)接收到一個(gè)列表湃番,列表的長度是隨意變化的
關(guān)鍵字參數(shù)
既然上面的可變參數(shù)是將一個(gè)list傳入函數(shù),那么相應(yīng)的吭露,有沒有一種參數(shù)是傳入一個(gè)字典呢吠撮,答案當(dāng)然是有的,就是關(guān)鍵字參數(shù)讲竿。
前面加兩個(gè)**就告訴了函數(shù)傳入關(guān)鍵字參數(shù)泥兰。