关键参数
如果你的某个函数有许多参数,而你只想指定其中的一部分,那么你可以通过命名来为这些参数赋值——这被称作 关键参数 ——我们使用名字(关键字)而不是位置(我们前面所一直使用的方法)来给函数指定实参。
这样做有两个 优势 ——一,由于我们不必担心参数的顺序,使用函数变得更加简单了。二、假设其他参数都有默认值,我们可以只给我们想要的那些参数赋值。
#!/usr/bin/python
# Filename: func_key.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)
(源文件:code/func_key.py)
输出
$ python func_key.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
的函数有一个没有默认值的参数,和两个有默认值的参数。
在第一次使用函数的时候, 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
的值。