11 Python函數參數分類

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 )
輸出
706050

如果在參數前面加上兩個*,則以字典的形式傳入

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