Python 函数参数

#-*- coding:utf-8 -*-

#缺省参数的定义
def test(a,b=10):
        print(a+b)


#缺省参数必须在参数列表的最后定义,不可以定义在普通参数前面
# def test(a,b=10,c)    ---这种定义方式是错误的


test(2)


def test2(a, b =10, c=5):
        print(a+b+c)


#命名参数的使用
test2(3,c=3)

#指定给参数c赋值,这里"c=3" c必须是形参名,不可以写其他变量名
#-*- coding:utf-8 -*-

#带参数名的可变参数   **kwarg

def test(a, b, c = 22, *arg, **kwarg):
        print(a)
        print(b)
        print(c)
        print(arg)
        print(kwarg)




test(1,2,3,4,5)

#打印 c的值是3, arg的值是(4,5)   kwarg的值是{}   --空的字典
#这里使用缺省参数没有实际意义,因为必须传值,只是验证一下缺省参数,可变参数,带参数名的可变参数这几个参数在参数列表中的顺序


print("="*10)

test(1,2,3,4,nam="jack",age=18)
#打印c的值是3,arg的值是(4,) ,kwarg的值是{"name":"jack","age":"18"}
#-*- coding:utf-8 -*-

#可变参数的遍历

def test(a, *arg):
        res = a
        for tmp in arg:
                res += tmp
        print(res)

test(1,2,3)

#结果打印6
#-*- coding:utf-8 -*-

#实参拆包应用

tupleNum = (4,5)

dicInfo = {"name":"tom","age":18}

def test(a, *arg, **kwarg):
        print(a)
        print(arg)
        print(kwarg)

print("===不拆包效果==")
test(1, tupleNum, dicInfo)

#观察打印结果发现tupleNum和dicInfo被当做参数传给arg

print("===拆包后==")
test(1, *tupleNum, **dicInfo)

#在实参中,元组(tuple)拆包使用*  字典拆包使用**

原文地址:https://www.cnblogs.com/zhanggaofeng/p/9248867.html