python-函數參數筆記

一:位置參數(正常參數)

def power(x):

    return x*x

二:默認參數

def power(x,n=2):

    s = 1

    while n>0:

        n = n - 1

        s = s * x

    return s

當調用power(5)時,相當於調用power(5,2),即n不傳遞值則默認爲2,當n不取2時需傳入明確值。

注:定義默認參數時一定要指向不變對象

三:可變參數

即傳入的參數個數是可變的,可以使1個、2個到任意個,也可以是0個

def calc(*numbers):

    sum = 0

    for n in numbers:

        sum = sum + n

    return sum

>>>calc(1,2)

函數內部numbers接收到的是一個tuple

如果傳入的參數是list或tuple,如:

>>>nums = [1,2,3]

>>>calc(*nums)

四:關鍵字參數

即允許傳入0個或任意個含參數名的參數,這些關鍵字參數在函數內部自動組裝爲一個dict

def person(name,age,**kw):

    print('name:',name,'age:',age,'other:',kw)

>>>person('Bob',33,city='Hefei')

也可以直接傳入一個dict參數,如:

>>>extra = {'city':'Hefei','job':'Python'}

>>>person('Bob',33,**extra)

五:命名關鍵字參數

如果要限制關鍵字參數的名字,就可以用命名關鍵字參數,例如,只接受city和job作爲關鍵字參數。函數定義如下:

def person(name,age,*,city,job):

    print(name,age,city,job)

命名關鍵字需要用*符號隔開,*後面的參數被視爲命名關鍵字參數。

>>>person('Jack',24,city='Hefei',job='Python')

如果函數定義中已經有一個可變參數,則後面跟着的即爲命名關鍵字參數,此時不需要分隔符*。

def person(name,age,*args,city,job):

    print(name,age,args,city,job)

函數調用時,命名關鍵字參數必須傳入參數名,否則報錯:

上述函數錯誤調用方法:

>>>person('jack',24,'Beijing','python')

正確調用方式:

>>>person('jack',24,city='Beijing',job='python')

命名關鍵字參數可以有缺省值,從而簡化調用:

def person(name,age,*,city='Beijing',job):

    print(name,age,city,job)

>>>person('jack',22,job='python')

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章