函数的参数

一、位置参数
    按位置传递的参数。实参按默认位置顺序传递,需要个数与形参匹配。
    def test(a,b,c):
        Print(a,b,c)

    test(1,2,3)


二、默认值参数
    形参给默认值。如果形参有默认值,实参也传递了,按照实参传递的来。默认值形参位置放在最后
    def test(a,b,c=15):
        Print(a,b,c)

    test(1,2,3)
    test(1,2)

三、命名参数
    按照形参的名称传递参数。
    def test(a,b,c):
        Print(a,b,c)

    test(b=2,a=1,c=3)

四、可变参数
    指可变数量的参数/动态参数/不定长参数*args,*后边用别的也可以
    1. *args(一个星号),将多个参数收集到一个“元组”对象中。
        def test(a,b,*c):
            Print(a,b,c)

        test(1,2,3,4) ——————>1,2,(3,4)
        
     脱外套操作    
        a = "abcd"
        b = [1,2,3]
        c = {"a":54,"b":"c"}

        print(*a)
        print(*b)
        print(*c)
        
        a b c d
        1 2 3
        a b

    2. 关键字参数:
        **kwargs(两个星号),将多个参数收集到一个“字典”对象中。kw = keyword
        def test(a,b,**c):
            print(a,b,c)

        test(1,2,wangzhe=”rongyao") ——————>1,2,{“wangzhe”:”rongyao”}

五、强制命名参数
    def test01(*a,b,c):
        print(a, b, c)


    test01(1,b=2,c=3)
    test01(1,2,3)    # 报错,因为*a收录元组,1,2,3都被收录,形参b,c就接不到实参,会报错