Python函數參數
普通位置參數
沒啥好說的,平常都是用的這個,注意位置不能調換。
默認參數
def enroll(name, gender, age=6, city='Beijing'):
pass
可變參數
可變參數允許你傳入0個或任意個參數,這些可變參數在函數調用時自動組裝爲一個tuple
def calc(*numbers):
pass
nums = [1, 2, 3]
calc(*nums)
關鍵字參數
而關鍵字參數允許你傳入0個或任意個含參數名的參數,這些關鍵字參數在函數內部自動組裝爲一個dict 。
在調用該函數時,可以只傳入必選參數。
def person(name, age, **kw):
print('name:', name, 'age:', age, 'other:', kw)
person('Michael', 30)
person('Adam', 45, gender='M', job='Engineer')
extra = {'city': 'Beijing', 'job': 'Engineer'}
person('Jack', 24, **extra)
命名關鍵字參數
命名關鍵字參數需要一個特殊分隔符*
,*
後面的參數被視爲命名關鍵字參數。
調用方式如下:
>>> person('Jack', 24, city='Beijing', job='Engineer')
Jack 24 Beijing Engineer
如果函數定義中已經有了一個可變參數,後面跟着的命名關鍵字參數就不再需要一個特殊分隔符*
了:
def person(name, age, *args, city, job):
print(name, age, args, city, job)
命名關鍵字參數必須傳入參數名,這和位置參數不同。如果沒有傳入參數名,調用將報錯
命名關鍵字參數可以有缺省值,從而簡化調用:
def person(name, age, *, city='Beijing', job):
print(name, age, city, job)