有两种方式使用不定长参数,一种是将所有的参数打包为元组:
def plus_ones(*args):
return [x+1 for x in args]
plus_ones(1, 2, 3) # [2, 3, 4]
另外一种则是将参数打包为字典:
def plus_twos(**kwargs):
return {key:value+2 for (key,value) in kwargs.items()}
plus_ones(Tom=1, Jerry=2, Me=3) # {'Tom': 3, 'Jerry': 4, 'Me': 5}
可以一口气把所有的技巧都用上:
def plus_threes(x, y=0, *args, **kwargs):
print(f' x={x} \n y={y} \n args={args} \n kwargs={kwargs}')
plus_threes(1, 2, 3, 4, 5, 6, seven=7, eight=8,)
'''
x=1
y=2
args=(3, 4, 5, 6)
kwargs={'seven': 7, 'eight': 8}
'''