python中函數傳遞參數有三種方式

來源:魅力女性吧 1.99W
python中函數傳遞參數有三種方式

python中函數傳遞參數三種方式。第1 種方式是最“傳統”的方式:一個函數可以定義不限個數參數,參數(形式參數)放在跟在函數名後面的小括號中,各個參數之間以逗號隔開。

用這種方式定義的函數在調用的時候也必須在函數名後的小括號中提供相等個數的值(實際參數),不能多也不能少,而且順序還必須相同。

也就是説形參和實參的個數必須一致,而且想給形參1的值必須是實參中的第一位,形參與實參之間是一一對應的關係,即“形參1=實參1 形參2=實參2...”。

很明顯這是一種非常不靈活的形式。比如:"def addOn(x,y): return x + y",這裏定義的函數addOn,可以用addOn(1,2)的形式調用,意味着形參x將取值1,主將取值2。

addOn(1,2,3)和addOn (1)都是錯誤的形式。

第2種方式比第1種方式好一點,在定義的時候已經給各個形參定義了默認值。

因此,在調用這種函數時,如果沒有給對應的形式參數傳遞實參,那麼這個形參就將使用默認值。

比如:“def addOn(x=3,y=5): return x + y”,那麼addOn(6,5)的調用形式表示形參x取值6,y取值5。

此外,addOn(7)這個形式也是可以的,表示形參x取值7,y取默認值5。這時候會出現一個問題,如果想讓x取默認值,用實參給y賦值怎麼辦

前面兩種調用形式明顯就不行了,這時就要用到Python中函數調用方法的另一大絕招 ──關健字賦值法。

可以用addOn(y=6),這時表示x取默認值3,而y取值6。這種方式通過指定形式參數可以實現可以對形式參數進行“精確攻擊”,一個副帶的功能是可以不必遵守形式參數的前後順序,比如:addOn(y=4,x=6),這也是可以的。

這種通過形式參數進行定點賦值的方式對於用第1種方式定義的函數也是適用的。

熱門標籤