python函式的5種引數

2021-07-27 11:04:44 字數 1178 閱讀 9092

本文和大家分享的主要是

python開發

(1) 位置引數,呼叫函式時按位置傳入引數

(2) 預設引數,即在函式定義時就給出引數的值,設定預設引數時要注意兩點,一是必選引數在前,預設引數在後。二是把變化小的引數放在後面可作為預設引數。具有預設引數的函式被呼叫時可以不傳入預設引數,若需要改變預設引數的值則可以賦值的形式呼叫該函式。若不按順序提供預設引數則需要把引數名寫上(即以賦值的形式)。預設引數必須指向不變的引數(即不變物件,物件內部的資料一旦建立就不能改變,在多工環境下同時讀取物件不需要加鎖)

(3) 可變引數,即傳入引數的個數是可變的。由於引數的個數不確定我們可以把引數作為乙個list或tuple傳入,訪問時可以使用for迴圈訪問。如果直接利用可變引數,定義可變引數和定義list或tuple引數相比僅僅在引數前面加乙個*號。在涵數內部引數接收到的是乙個tuple,因此函式**完全不變,但是,呼叫函式時可以傳入任意個引數,包括0個引數。如果已經有乙個list或tuple要呼叫乙個可變引數有兩種方法,一是分別取出各引數並傳入。二是在其前面加上乙個*號,把list或tuple的元素變成可變引數傳進去。

(4) 關鍵字引數,可變引數允許你傳入0個或任意個引數,這些引數在函式呼叫時自動組裝成乙個tuple。而關鍵字引數允許你傳入0個或任意個含引數名的引數,這些關鍵字引數在函式內部自動組裝為乙個dict。如果傳入的關鍵字引數為dict則可以將函式中的那個引數前面加兩個**號。

(5) 命名關鍵字引數,用於限制關鍵字的名字。和關鍵字引數**kw不同,命名關鍵字引數需要乙個特殊分隔符*,*後面的引數被視為命名關鍵字引數。如果函式定義中已經有了乙個可變引數,後面跟著的命名引數就不需要乙個特殊分隔符*號了。命名關鍵字引數必須傳入引數名,這和位置引數不同。如果沒有傳入引數名,呼叫將報錯。

注意:引數的定義順序是:必選引數、預設引數(一定要用不可變物件)、可變引數、命名關鍵字引數、關鍵字引數 def f(a,b,c=0,*,d,**kw),對於任意函式都可以通過類似fun(*arg,**kw)的形式呼叫它,無論它的引數是如何定義的。

*arg是可變引數,arg接收的是tuple

**kw是關鍵字引數,kw接收的是dict

可變引數即可以直接傳入:fun(1,2,3),又可以先組裝list或tuple,再通過*arg傳入:func(*(1,2,3));

關鍵字引數既可以直接傳入:fun(a=1,b=2),又可以先組裝dict,再通過**kw傳入:function(**)

函式中引數傳遞的5種方式

1 必須引數 位置引數 必需引數 先用形式引數定義,然後在呼叫時對應位置使用實參 具體的數值 呼叫,定義的形式引數和呼叫的實際引數必需一一對應 順序 數量 def sum a,b return a b sum 5,6 2 關鍵字引數 關鍵字引數 先使用形式引數定義,然後呼叫時以關鍵字的形式 形式引數...

Python函式的5類引數使用詳解

1 各種引數使用之坑 1 syntaxerror positional argument follows keyword argument 2 typeerror f missing 1 required keyword only argument b 3 syntaxerror keyword a...

python引數函式 Python函式引數總結

coding utf 8 整理一下python函式的各種引數型別 位置引數 呼叫函式時,傳入的兩個值按照位置順序依次賦給引數 def power x,n s 1 while n 0 n n 1 s s x return s print power 5,2 預設引數 簡化函式的呼叫 def power...