在python中定義函式,可以用必選引數、預設引數、可變引數和關鍵字引數,這4種引數都可以一起使用,或者只用其中某些,
但是請注意,引數定義的順序必須是:必選引數、預設引數、可變引數和關鍵字引數。
#eg:
defchiji
(id,name='張三',*args,**kwargs):
print("必選引數:"+str(id))
print("預設引數:" + name)
print("可變引數:"+str(args))
print("關鍵字引數:"+str(kwargs))
可變引數就是傳入的引數個數是可變的,可以是1個、2個到任意個,還可以是0個。在函式內部,引數args接收到的是乙個tuple元組
關鍵字引數允許你傳入0個或任意個含引數名的引數,這些關鍵字引數在函式內部自動組裝為乙個dict
params=[25,"女"]
kwparams =
chiji(23,"小美",*params,**kwparams)
python的函式具有非常靈活的引數形態,既可以實現簡單的呼叫,又可以傳入非常複雜的引數。
預設引數一定要用不可變物件,如果是可變物件,執行會有邏輯錯誤!
要注意定義可變引數和關鍵字引數的語法:
*args是可變引數,args接收的是乙個tuple;
**kw是關鍵字引數,kw接收的是乙個dict。
以及呼叫函式時如何傳入可變引數和關鍵字引數的語法:
可變引數既可以直接傳入:func(1, 2, 3),又可以先組裝list或tuple,再通過args傳入:func((1, 2, 3));
關鍵字引數既可以直接傳入:func(a=1, b=2),又可以先組裝dict,再通過kw傳入:func()。
使用*args和**kw是python的習慣寫法,當然也可以用其他引數名,但最好使用習慣用法。
python函式引數詳解
如果你傳入的引數物件是可變物件 列表,字典,這個時候就是引用傳遞。如果你傳入的引數物件是不可變的物件 數字,元組,字串,這個時候就是值傳遞。對於值傳遞,函式內部修改的是引數的副本,不會改變原值 對於引用傳遞,函式內部修改了是變數的指向,從而相應對變數進行了改變。舉例如下 當引數是不可變物件時 a 1...
python函式引數的詳解
實參 呼叫函式,在括號內傳入的實際值,值可以為常量 變數 表示式或三者的組合 形參 定義函式,在括號內宣告的變數名,用來接受外界傳來的值 注 形參隨著函式的呼叫而產生,隨著呼叫結束而銷毀 位置實參 不用明確形參名的傳參方式,一定按照位置給形參傳值 關鍵字實參 必須明確形參名字與值為形參傳值,可以不用...
python函式的引數詳解
函式定義的格式 def my func pass 函式的引數 形參,實參,關鍵字引數 必須引數 def my func with param p1,p2 print p1,p2 my func with param 1,2 關鍵字引數 是在呼叫的時候制定引數名稱,可以不按照順序傳 def my fu...