python中函數(shù)定義語法 def power():
函數(shù)的參數(shù)
參數(shù)的默認? ? eg:def power(x,n=2):?? x是形式參數(shù)锤悄,調用時必須傳遞韧骗,n為默認參數(shù),如果沒有傳遞零聚,將默認為2
設置默認參數(shù)時需要注意將必選參數(shù)放在前面袍暴,默認參數(shù)放在后面些侍,否則編譯器會報錯
當函數(shù)有多個參數(shù)時,把變化大的參數(shù)放前面政模,變化小的參數(shù)放后面岗宣。變化小的參數(shù)就可以作為默認參數(shù)。
當不按順序提供部分默認參數(shù)時淋样,需要把參數(shù)名寫上耗式。
默認參數(shù)的容易出錯的地方
所以,定義默認參數(shù)要牢記一點:默認參數(shù)必須指向不變對象习蓬!
可變參數(shù)定義用*纽什,表示傳遞的參數(shù)是一個數(shù)組或者元組,def cale(*name,age),如果本身是數(shù)組或者元組那么會將每一個元素傳遞進去躲叼,如果是直接傳遞多個數(shù)字或者字符,編譯器會自動當作元組來傳遞參數(shù)企巢。
關鍵字參數(shù)允許你傳入0個或任意個含參數(shù)名的參數(shù)枫慷,這些關鍵字參數(shù)在函數(shù)內部自動組裝為一個dict。
>>>extra = {'city':'Beijing','job':'Engineer'}
>>>person('Jack',24, **extra)
name: Jack age:24? other: {'city':'Beijing','job':'Engineer'}
**extra表示把extra這個dict的所有key-value用關鍵字參數(shù)傳入到函數(shù)的**kw參數(shù)浪规,kw將獲得一個dict或听,注意kw獲得的dict是extra的一份拷貝,對kw的改動不會影響到函數(shù)外的extra笋婿。
*args是可變參數(shù)誉裆,args接收的是一個tuple;
**kw是關鍵字參數(shù)缸濒,kw接收的是一個dict足丢。