python中函数可变参数定义

158 阅读1分钟

函数参数带*和** 有什么区别呢?

先看普通函数

def fun():
    print('无参函数')
    
def fun1(a,b):
    return a+b

参数有默认值的函数,如果调用的时候fun2(10),b会自动赋值为0

def fun2(a,b=0)
    print(a)
    print(b)

参数带*的函数,接收可变参数

def fun3(a,b,*c):
    print(a)
    print(b)
    print(len(c))
    print(c)

调用fun3(1,2,3,4,5,6,7), 返回结果

1

2

5

3,4,5,6,7

参数带** 函数,以字典形式传给函数

def fun4(a,**b):
    print(a)
    for item in b:
        print(item+":"+str(b[item]))

调用fun4(1,{"name":"张三","age":20})

返回结果:

1

name:张三

age:20