關鍵字參數
如果你有一些具有許多參數的函數,而你又希望隻對其中的一些進行指定,那麼你可以通過命名它們來給這些參數指派——這就是
Python關鍵字參數 ——我們使用命名(關鍵字)而非位置(一直以來我們所使用的方式)來指定函數中的參數。 Python中這樣做有兩大優點——其一,我們不再需要考慮參數的順序,函數的使用将更加容易。其二,我們可以隻對那些我們希望賦予的參數以指派,隻要其它的參數都具有預設參數值。
案例(儲存為 function_keyword.py):
def func(a, b=5, c=10):
print('a is', a, 'and b is', b, 'and c is', c)
func(3, 7)
func(25, c=24)
func(c=50, a=100)
輸出:
$ python function_keyword.py
a is 3 and b is 7 and c is 10
a is 25 and b is 5 and c is 24
a is 100 and b is 5 and c is 50
它是如何工作的
名為 func 的
Python函數有一個沒有預設參數值的參數,後跟兩個各自帶有預設參數值的參數。
在第一次調用函數時,func(3, 7),參數 a 獲得了值 3,參數 b 獲得了值 7,而 c 獲得了預設參數值 10。
在第二次調用函數時,func(25, c=24),由于其所處的位置,變量 a 首先獲得了值 25。然後,由于命名——即關鍵字參數——指定,變量 c 獲得了值 24。變量 b 獲得預設參數值 5。+
在第三次調用函數時,func(c=50, a=100),我們全部使用關鍵字參數來指定值。在這裡要注意到,盡管 a 在 c 之前定義,但我們還是在變量 a 之前指定了變量 c。