1、位置參數
python函數中的位置參數和java函數是一個意思,比如現在我們計算2+3:
def add(a,b):
return a+b
print add(2,3)
>>5
2、默認參數
顧名思義,就是在定義函數的時候給屬性添加默認值唄
def add(a,b=8):
return a+b
print add(2,3)
print add(2)
>>5
>>10
3、可變參數
在我的理解中就是,傳入一個list或者tuple,他們是可變的,在函數中通過循環把他們的內容取出來做處理。
def add(numbers):
sum=0
for i in numbers:
sum = sum +i
return sum
list = [1,2,3]
tuple = (1,2,3,4)
print add(list)
print add(tuple)
>>6
>>10
這個時候你回覺得有點麻煩,每次傳入的數據必須先要封裝成一個數組或者元組,這個時候你也可以使用“*”來簡化可變參數:
def add1(*numbers):
sum=0
for i in numbers:
sum = sum +i
return sum
print add1(1,2,3,4,5)
>>15
4、關鍵字參數
允許你傳入0個或任意個含參數名的參數,這些關鍵字參數在函數內部自動組裝爲一個dict
def person(name, age, **kw):
print('name:', name, 'age:', age, 'other:', kw)
>>person("ly",12)
>>name:name="ly",age=12
person('lh', 15, gender='M', job='ETL)
>>name: lh age: 15 other: {'gender': 'M', 'job': 'ETL'}
5、命名關鍵字參數
和關鍵字參數的 的區別就是提前給參數命名:但是用法是不一樣的,他是使用“”來分割參數,“”後面的參數視爲命名關鍵字參數
def person(name, age, *, city, job):
print(name, age, city, job)
>> person('xy', 24, city='Beijing', job='doctor')
>>xy 24 Beijing doctor
6、參數組合
參數定義的順序必須是:必選參數、默認參數、可變參數、命名關鍵字參數和關鍵字參數。
def f1(a, b, c=0, *args, **kw):
print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw)
def f2(a, b, c=0, *, d, **kw):
print('a =', a, 'b =', b, 'c =', c, 'd =', d, 'kw =', kw)