python 关键词主要参数
假如你有一些具备很多主要参数的涵数,但你又期待只对在其中的一些开展特定,那麼你能根据取名他们来给这种主要参数取值——这就是python关键词主要参数(Keyword Arguments)——大家应用取名(关键词)并非部位(一直以来大家所应用的方法)来特定涵数中的主要参数。
那样做有几大优势
- 大家不会再必须考虑到主要参数的次序,涵数的应用将更为非常容易
- 我们可以只对这些大家期待授予的主要参数以取值,只需其他的主要参数都具备默认设置变量值
举例说明:
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)
輸出:
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 的涵数有一个沒有默认设置变量值的主要参数,后跟2个分别含有默认设置变量值的主要参数。
在第一次启用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。
python 可变参数
有时候你很有可能想界定的涵数里边可以有随意总数的自变量,也就是主要参数总数是可变性的,这能够根据应用星号来完成
def total(a=5, *numbers, **phonebook):
print('a', a)
#解析xml元组中的全部新项目
for single_item in numbers:
print('single_item', single_item)
#遍历字典中的全部新项目
for first_part, second_part in phonebook.items():
print(first_part,second_part)
print(total(10,1,2,3,Jack=1123,John=2231,Inge=1560))
輸出:
a 10
single_item 1
single_item 2
single_item 3
Inge 1560
John 2231
Jack 1123
None
它是怎样工作中的
在我们申明一个例如 *param 的星号主要参数时,从这里逐渐直至完毕的全部部位主要参数(Positional Arguments)都将被搜集并汇聚成一个称之为“param”的元组(Tuple)
相近地,在我们申明一个例如 **param 的双星号主要参数时,从这里逐渐直到完毕的全部关键词主要参数都将被搜集并汇聚成一个名叫 param 的词典(Dictionary)