您好,登錄后才能下訂單哦!
這篇文章主要介紹了python中函數(shù)的參數(shù)及參數(shù)的類型,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
默認參數(shù)
def enroll(name, gender, age=6, city='Beijing'): print('name:', name) print('gender:', gender) print('age:', age) print('city:', city)
有多個默認參數(shù)時,調用的時候,既可以按順序提供默認參數(shù),比如調用enroll('Bob', 'M', 7),意思是,除了name,gender這兩個參數(shù)外,最后1個參數(shù)應用在參數(shù)age上,city參數(shù)由于沒有提供,仍然使用默認值。
也可以不按順序提供部分默認參數(shù)。當不按順序提供部分默認參數(shù)時,需要把參數(shù)名寫上。比如調用enroll('Adam', 'M', city='Tianjin'),意思是,city參數(shù)用傳進去的值,其他默認參數(shù)繼續(xù)使用默認值。
def add_end(L=[]): L.append('END') return L >>> add_end() ['END', 'END'] >>> add_end() ['END', 'END', 'END']
Python函數(shù)在定義的時候,默認參數(shù)L的值就被計算出來了,即[],因為默認參數(shù)L也是一個變量,它指向對象[],每次調用該函數(shù),如果改變了L的內容,則下次調用時,默認參數(shù)的內容就變了,不再是函數(shù)定義時的[]了。
定義默認參數(shù)要牢記一點:默認參數(shù)必須指向不變對象!
要修改上面的例子,我們可以用None這個不變對象來實現(xiàn):
def add_end(L=None): if L is None: L = [] L.append('END') return L
可變參數(shù)
def calc(*numbers): sum = 0 for n in numbers: sum = sum + n * n return sum >>> calc(1, 2, 3) 14 >>> calc(1, 3, 5, 7) 84
定義可變參數(shù)和定義一個list或tuple參數(shù)相比,僅僅在參數(shù)前面加了一個*號。在函數(shù)內部,參數(shù)numbers接收到的是一個tuple,因此,函數(shù)代碼完全不變。但是,調用該函數(shù)時,可以傳入任意個參數(shù),包括0個參數(shù):
>>> calc(1, 2) 5 >>> calc() 0
關鍵字參數(shù)
可變參數(shù)允許你傳入0個或任意個參數(shù),這些可變參數(shù)在函數(shù)調用時自動組裝為一個tuple。而關鍵字參數(shù)允許你傳入0個或任意個含參數(shù)名的參數(shù),這些關鍵字參數(shù)在函數(shù)內部自動組裝為一個dict。
組合參數(shù)
在Python中定義函數(shù),可以用必選參數(shù)、默認參數(shù)、可變參數(shù)、關鍵字參數(shù)和命名關鍵字參數(shù),這5種參數(shù)都可以組合使用。但是請注意,參數(shù)定義的順序必須是:必選參數(shù)、默認參數(shù)、可變參數(shù)、命名關鍵字參數(shù)和關鍵字參數(shù)。
感謝你能夠認真閱讀完這篇文章,希望小編分享python中函數(shù)的參數(shù)及參數(shù)的類型內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業(yè)資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。