Python函數參數的分類
- python函數參數的分類
- 必須參數
- 關鍵字參數
- 默認參數
- 不定長參數
1. python函數參數的分類
上面的標題已經說明問題,python的參數分爲一下四類分別爲
必須參數,關鍵字參數,默認參數和不定長參數
2. 必須參數
必須參數是必須按照順序和相同的數量傳入到函數中
def printNumber(a):
print(a)
printNumber() #如果不傳入必須參數,程序將會報錯
TypeError: printNumber() missing 1 required positional argument: 'a'
3. 關鍵字參數
使用關鍵字參數,允許傳入的參數值與聲明的順序不一致,
def printInfo(name, age):
print('name: {}, age: {}'.format(name, age))
printInfo(name='jack', age=23)
#或者
printInfo('jack', 23)
#但是不能把關鍵字參數放到必須參數的前面。
printInfo(age=23, 'jack')
疑問: 怎樣區分必須參數和關鍵字參數呢?
如果單從函數的定義很難去區分,關鍵字參數的目的是讓代碼更可讀,建議使用關鍵字參數,及時改參數爲必須參數。
4. 默認參數
如果在傳入參數中,沒有指定,則使用默認參數。
5. 不定長參數
不定長參數要在參數前面加上*
def function_name([formal_function_paramter], *args):
print('formal_function_paramter')
print(args) # args參數將包裝成tuple
def printinfo( arg1, *vartuple ):
print ("輸出: ")
print (arg1)
print (vartuple)
# 調用printinfo 函數
printinfo( 70, 60, 50 )
輸出
70
(60, 50)
如果在參數前面加上兩個*,則以字典的形式傳入
def printInfo(name, **kwargs):
print(name)
for key, value in kwargs.items():
print('key: {}, value: {}'.format(key, value))
printInfo("jack", age=34, moneny=1000)
輸出:
jack
key: moneny, value: 1000
key: age, value: 34
6. 強制使用關鍵字參數 *
def add(a,b,*,c):
print(a + b + c)
add(10, 20, c=30)
輸出:
60