Python關鍵字參數與非關鍵字參數(可變參數)詳解


關鍵字參數與非關鍵字參數(可變參數)詳解

學過php或者其他語言的同學都知道,php里面的參數不是個數不是可變的(只是很多時候是可以省略的,因為在函數定義的時候為參數設置了默認值)。但是在python里卻不是這樣,python里面運行可變參數的出現,參數中出現(*arg,**arg2)的形式。

今天我們來詳解一下這種用法:

例如:

def foo1(arg1,arg2,key1=1,key2=2,*arg,**keywords):
    print "arg1 parameters is ",arg1
    print "arg2 parameters is ",arg2
    print "key1 parameter is ",key1
    print "key2 parameter is ",key2
    print "Arbitrary parameter is ", arg
    print "keywords parameter is ",keywords

foo1(1,2,3,4,5,6,k1=1,k2=2,k3=3)

輸出:

arg1 parameters is  1
arg2 parameters is  2
key1 parameter is  3
key2 parameter is  4
arg parameter is  (5, 6)
keywords parameter is  {'k3': 3, 'k2': 2, 'k1': 1}

函數參數分為四部分:
arg1,arg2,key1,key2普通參數
*arg 非關鍵字參數列表
**keywords 關鍵字參數列表

函數聲名部分,參數的四個部分不可顛倒位置,可以沒有其中某幾部分。

python函數的這種特性使得函數參數更加靈活,參數個數也不受限制。

注意:這種用法常用在python的裝飾器中,至於什么是裝飾器,它是python里面非常重要的一個特性,我會在以后詳解

 

python開發就去PythonTab中文網—PythonTab :Python中文開發者社區門戶

文章轉自:http://www.pythontab.com/html/2012/pythonjichu_1224/54.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM