函数参数

实际参事

实参关键逻辑是对应形参

  1. 位置参数

    是按照位置与形参进行对应的传递

  2. 关键字实参

    实参按照名字传递

    def fun01(p1, p2, p3):
        print(p1)
        print(p2)
        print(p3)
        
    func01(p1=1, p2=2, p3=3)
    
  3. 序列(列表/元组)实参

    使用*拆分列表,将元素与形参对应

    def countSecond(hour=0, minute=0, second=0):
        sumSecond = hour * 3600 + minute * 60 + second
        print(sumSecond)
        
    list01 = [1, 2, 3]
    countSecond(*list01)    
    

    这里*作用就是拆列表,如果没有*就会把列表整个传进去

  4. 字典实参

    使用**拆分字典,将键值对与形参对应。

    def countSecond(hour=0, minute=0, second=0):
        sumSecond = hour * 3600 + minute * 60 + second
        print(sumSecond)
        
    dict04 = {"p1": 1, "p2": 2, "p3": 3}
    countSecond(**dict04)
    

形式参数

形参关键作用就是约束实参

  1. 默认参数,调用函数时候,可给可不给。

    def func01(p1=0, p2=0, p3=0):
    print(p1)
    
  2. 位置形参,调用函数时候一定要给。

  3. 不定长形参

    1. 星号元组形参可以将位置实参合并为元组,让位置实参数量无限。*args可以接受任意个 位置参数,但是*只能接受位置参数
    def leiCheng(*args):
        sum = 1
        for number in args:
            sum *= number
        print(sum)
    
    leiCheng(1, 2, 10, 500, 900, 4)
    
    1. 双星号字典形参将实参合并为元组,将关键字实参合并为字典,让关键字实参数量无限,一般用**kwargs表示。
    def fun02(**kwargs):
        print(kwargs)
        
    fun02(p=12, p2=78, p3=20)
    

    如果开发中所有参数都有,必须按照下面从左到右顺序否者报错。

    位置形参--星号元组形参--命名关键字形参--双星号字典形参

posted on 2020-12-07 23:59  xiao小胡子  阅读(72)  评论(0)    收藏  举报