python函数参数

作者: 叶子陪你玩 | 来源:发表于2019-06-29 09:48 被阅读0次
    #1.最简单的无参数
    def functionName():
        pass
    
    functionName()
    
    #2.必选位置参数
    def printMyAddress(someName,houseNum):
        print(someName,houseNum)
    
    printMyAddress("yeching",18)
    printMyAddress("james",25)
    
    #3.默认参数,
    """
    默认参数可以简化函数的调用。
    设置默认参数时,有几点要注意:一是必选参数在前,默认参数在后。
    当函数有多个参数时,把变化大的参数放前面,变化小的参数放后面。变化小的参数就可以作为默认参数。
    使用默认参数有什么好处?最大的好处是能降低调用函数的难度。
    """
    def moveForward(speed,step=1):
        pass
    moveForward(5)
    moveForward(5,5)
    
    #4命名关键字参数:通过参数名进行匹配,好处是不用记住顺序通过调用时使用参数的变量名,使用name=value这种语法。
    def cal(a=1,b=2,c=3):
        print(a+b*c)
    
    cal(3, 4, 5)
    cal(4, 3, 5)
    cal(c=3, b=4, a=5)
    
    #5可变参数:收集任意多基于位置或关键字的参数。
    
    """
    可变参数就是传入的参数个数是可变的,可以是 1 个、2 个到任意个,还可以是 0 个。
    
    我们以数学题为例子,给定一组数字 a,b,c……,请计算 a+ b+c
    + ……。
    要定义出这个函数,我们必须确定输入的参数。由于参数个数不确定,我们首先想到可以把 a,b,c……作为一个 list 或 tuple 传进来,这样,函数可以定义如下:
    """
    def calc(numbers):
        sum = 0
        for n in numbers:
            sum = sum + n * n
    return sum
    
    但是调用的时候,需要先组装出一个 list 或 tuple:
    >>> calc([1, 2, 3])
    6
    >>> calc((1, 3, 5, 7))
    16
    
    如果利用可变参数,调用函数的方式可以简化成这样:
    >>> calc(1, 2, 3)
    6
    >>> calc(1,  3, 5, 7)
    16
    
    所以,我们把函数的参数改为可变参数:
    def calc(*numbers):
        sum = 0
        for n in numbers:
            sum = sum + n * n
    return sum
    """
    定义可变参数和定义一个 list 或 tuple 参数相比,仅仅在参数前面加
    了一个*号。在函数内部,参数 numbers 接收到的是一个 tuple,因
    此,函数代码完全不变。但是,调用该函数时,可以传入任意个参
    数,包括 0 个参数.
    """
    
    #6.可变关键字参数:传递任意多基于位置或关键字的参数。
    """
    可变参数允许你传入 0 个或任意个参数,这些可变参数在函数调用时自
    动组装为一个 tuple。而关键字参数允许你传入 0 个或任意个含参数名的
    参数,这些关键字参数在函数内部自动组装为一个 dict。请看示例:
    """
    def person(name, age, **kw):
          print('name:', name, 'age:', age, 'other:', kw)
    
    >>> person('Bob', 35, city='Beijing')
    name: Bob age: 35 other: {'city': 'Beijing'}
    >>> person('Adam', 45, gender='M', job='Engineer')
    name: Adam age: 45 other: {'gender': 'M', 'job': 'Engineer'}
    

    【总结】默认情况下,参数是通过其位置进行匹配的,从左到右,而且必须精准的传递和函数头部参数名一样多的参数。参数定义的顺序必须是:必选参数、默认参数、可变参数/命名关键字参数和关键字参数。

    相关文章

      网友评论

        本文标题:python函数参数

        本文链接:https://www.haomeiwen.com/subject/xtmucctx.html