Python学习 -- 函数参数

145 阅读2分钟

一、函数参数分类

1 位置参数

位置参数:
    调用函数时根据函数定义的参数位置来传递参数。
示例:
    def user_info(name, age, gender):
        print(f"您的名字是{name},年龄是:{age},性别是:{gender}")
    user_info("tom", 20, "m")
"注意:传递的参数和定义的参数的顺序及个数必须一致"

2 关键字参数

关键字参数:
    函数调用时通过“键=值”形式传递参数。
作用:
    可以让函数更加清晰、容易使用,同时也清除了参数的顺序要求。
示例:
    def user_info(name, age, gender):
        print(f"您的名字是:{name},年龄是:{age},性别是:{gender}")
    # 关键字传参
        user_info(name="小明", age=20, gender="m")
    # 可以不按照固定顺序
        user_info(age=20, name="小明", gender="m")
    # 可以和位置参数混用
        user_info("小明", age=20, gender="m")
"注意:函数调用时,如果有位置参数时,位置参数必须在关键字参数的前面,但关键字参数之间不存在先后顺序。"

3 缺省参数

缺省参数:
    缺省参数也叫默认参数,用于定义函数,为参数提供默认值,调用函数时可以不传该默认参数的值。
作用:
    当调用函数式没有传递参数,就会使用默认是用缺省参数对应的值。
示例:
    def user_info(name, age, gender="m"):
        print(f"您的名字是:{name},年龄是:{age},性别是:{gender}")
    user_info("小明", 20)
"注意:
    所有位置参数必须在默认参数前面,包括函数定义和调用。
    函数调用时,如果为缺省参数传值,则会使用传入的该值,否则直接使用默认值。"

4 不定长参数

不定长参数:
    不定长参数也称为可变参数,用于不确定调用的时候会传递多少个参数的场景。
作用:
    当调用函数时不确定函数参数的个数时,可以使用不定长参数。
不定长参数的类型:
    位置传递:
        语法:
            def user_info(*args):
                print(args)
        "注意:该方式传进的所有参数都会给args变量收集,它会根据传进参数的位置合并为一个元组(tuple),args是元组类型,这就是位置传递。"
    关键字传递:
        语法:
            def user_info(**kwargs):
                print(kwargs)
        "注意:该方式传进的参数是“键=值”的形式,所有的“键=值”都会被kwargs接收,同时会根据“键=值”组成字典"

二、匿名函数

1 函数作为参数

示例:
    def test_func(compute):
        result = compute(1, 2)
        print(result)
    def compute(x, y):
        result x + y

2 匿名函数

定义:
    lambda关键字可以定义匿名函数,匿名函数就是无名称的函数,有名称的函数可以基于名称重复多次使用,而无名称的函数只可以临时的使用一次。
语法:
    lambda 传入参数: 函数体(一行代码)
"注意:只能写一行代码。"
示例:
     def test_func(compute):
        result = compute(1, 2)
        print(result)
     test_func(lambda x, y: x + y)