可变长参数存在的意义是:每次调用一个函数处理不同量的参数输入。即,参数在调用之前输入的参数数量是未知的,或者多次调用该函数,每次的参数输入的量是不一致的;
可变长参数分为非关键字和关键字类型,分别对应元组和字典,如下定义一个类,功能是打印出输入的函数:
>>> class Test:
def keyword(self,a,b,*non_keyword,**keyword):
print('a is ',a)
print('b is ',b)
print('non_keyword',non_keyword)
for key in keyword:
print("'%s':%s" % (key,str(keyword[key])))
>>> test = Test()
>>> dis = test.keyword('a','b',('c','d'),e='e',f='f')
a is a
b is b
non_keyword (('c', 'd'),)
'e':e
'f':f
以上的输入时一次输入的情形,当再次调用,输入不同的数量的参数时,依然可以打印出:
>>> test0 = Test()
>>> dis0 = test0.keyword('a','b',('c','d','c0','c1','d0','d1'),e='e',f='f',g='g',h='h')
a is a
b is b
non_keyword (('c', 'd', 'c0', 'c1', 'd0', 'd1'),)
'h':h
'e':e
'f':f
'g':g
所以可变长参数输入具有一定的灵活性,更利用应对不同场景。