对于习惯使用java/C#等编程语言的人,通常调用函数的时候就是例如 test(int x,int y ,int z),调用就是test(1,2,3)。但是对于Python来说函数调用就非常灵活
一:不定量参数传递
def print_params(*params): print(params)
这里params是一个数组结构,调用的时候依据实际参数长度生成一个数组参数
二:混合参数传递
def print_params_2(title, *params): print(title) print(params)
调用:print_params_2('Params:', 1, 2, 3)
返回结果 Params: (1, 2, 3) 这种方式的参数,参数定义的会优先取传入数据,当没有定义的参数承接数据时,剩下的数据会被传递到不定量参数里 同样情况另一种写法
def in_the_middle(x, *y, z):
print(x, y, z)
这种写法,即是y就是取中间参数,最少需要三个参数,x,z首尾取一个,剩下的全部赋值给y
def print_params_3(**params):
print(params)
当我们使用两个星号时,表示我们的参数是key-value字典集参数
所以终极混合:
def print_params_4(x, y, z=3, *pospar, **keypair): print(x, y, z) print(pospar) print(keypair)
前面匹配三个参数,pospar数组匹配中间参数,尾部key-value形式的参数全部交给keypair
转载于:https://www.cnblogs.com/ckhome/p/9638829.html