python中函式的引數

2021-10-11 23:11:21 字數 2202 閱讀 8494

函式的引數

引數列表由一系列引數組成,並用逗號隔開。在呼叫函式時,如果需要向函式傳遞引數,則被傳入的引數稱為實參,而函式定義時的引數稱為形參,實參與形參之間可以傳遞資料。

1.位置引數

位置引數是指函式呼叫時傳遞實參的順序與定義函式的形參順序一致,如例所示。

在例中,第1、2行定義printinfo()函式。第3行呼叫該函式,其資料傳遞如圖所示。第4行將兩個實參的位置調換,則發生錯誤。

在圖中,當函式呼叫時,實參的傳遞順序與定義函式形參的順序需保持一致。由於實參的順序與函式定義時形參的位置有關,因此稱為位置引數。

2.關鍵引數

關鍵引數是指通過對形參賦值傳遞的引數。關鍵引數允許函式呼叫時傳遞實參的順序與定義函式的形參順序不一致,因為 python直譯器能夠用形參名匹配實參值,使使用者不必記住位置引數的順序,如例所示。

執行結果如圖所示。

在例中,第1~2行定義printinfo()函式。第4行呼叫函式,其引數是根據函式定義時形參的名稱進行資料傳遞,因此稱為關鍵引數。

3.預設引數

如果在函式定義時引數列表中的某個形參有值,就稱這個引數為預設引數。注意預設引數必須放在非預設引數的右側,否則函式將出錯,如例所示。

執行結果如圖所示。

在例中,第3行呼叫函式時,由於定義函式時形參school有預設值』千鋒教育』,因此呼叫時可以省略不寫該引數。如果想修改預設值,則在呼叫時傳入該引數即可,如本例中的第4行。

預設引數可以讓函式的呼叫更加簡化,就如同安裝pc端軟體時,程式會提示使用者預設安裝路徑,當然使用者也可以自定義安裝路徑。

此外,如果將例題中的name與school調換位置,具體示例如下:

程式執行後,將會報錯,如圖所示。

4.不定長引數

在前面對函式的介紹中,乙個形參只能接收乙個實參。除此之外,函式形參可以接收不定個數的實參,即使用者可以給函式提供可變長度的引數,這可以通過在形參前面使用來實現,如例所示。

此外,不定長引數還可以接受關鍵引數並將其存放到字典中,這時需要使用**來實現,如例所示。

此外,通過還可以進行相反的操作,如例所示。

另外,通過**可以將字典轉換為關鍵引數,如例所示。

此外,需注意上述兩種方式的傳遞順序,如例所示。

5.傳遞不可變與可變物件

在python中,數字、字串與元組是不可變型別,而列表、字典是可變型別,兩者區別如下:

不可變型別——該型別的物件所代表的值不能被改變。當改變某個變數時,由於其所指的值不能被改變,相當於把原來的值複製乙份後再改變,這會開闢乙個新的位址,變數再指向這個新的位址。

可變型別——該型別的物件所代表的值可以被改變。變數改變後,實際上是其所指的值直接發生改變,並沒有發生複製行為,也沒有開闢出新的位址。

接下來演示呼叫函式時傳遞不可變與不可變物件,如例所示。

執行結果如圖所示。

Python函式引數中的 ,

問題 python的函式定義中有兩種特殊的情況,即出現 的形式。如 def execute command self,args,options 等。解釋 用來傳遞任意個無名字引數,這些引數會乙個tuple的形式訪問。用來處理傳遞任意個有名字的引數,這些引數用dict來訪問。應用 的應用 def fu...

Python中的函式引數

python中的引數由於沒有特定的指示方式,所以傳遞引數時也可將其他函式作為引數傳入。傳遞格式 def fun name x,y,z 其中x,y,z都可作為其他函式的名稱 示例 def fun x,y,f return f x f y print fun 10,34,abs 結果 2.1 map函式...

python中函式的引數

python 中函式的引數分為四種 位置引數 預設引數 可變引數 關鍵字引數 命名關鍵字引數 顧名思義,與變數位置有關的引數,例 def power x return x x即在函式定義時給出引數的值,例 def power x,y 1 return x y注 預設引數必須指向不變物件 即傳入的是乙...