python 点滴记录11:函数参数的收集

8python中,当在不确定给函数传递参数的个数时,可以使用*args和**kargs形式(args、kargs可以使用其他名称定义)。

一、*args形式

eg1:

def func(x,*a):
        print x
        print a
        
func(1,2,3,4,5)

调用函数后结果为:

1
(2, 3, 4, 5)

从过结果可看出,在使用*a后,当给函数传递多个参数时,函数会将第一个实参传递给第一个型参,然后将剩下的实参传递给了*a,而*a将剩下的参数放在了一个元组中。

如果函数中定义了(x,*a),而传递参数的时候,只传了一个实参,那么*a将会生成一个空的元组。

eg2:

def func(x,*a):
        print x
        print a
        
func(1)

调用函数后结果为:

1
()

从结果可以看出,参数1传给了x,而*a生成了一个空的元组。

需要注意的是,当元素中只有一个元素时,该元素后面需要加一个“,”

eg3:

def func(x,*a):
        print x
        print a
        
func(1,2)

调用函数后结果为:

1
(2,)

元组里面只有一个元素2,后面还有一个“,”。

二、*kargs形式

*kargs形式会将接收到的参数存在一个字典中,因此,在传递参数时,需要以键值队的形式。

eg1:

def func(i,**a):
        print a
        print i
        
func(3,x=4)

执行结果为:

{'x': 4}
3

注意参数传递的方式:x=4

你可能感兴趣的:(python)