美文网首页
024_函数参数

024_函数参数

作者: Nzkalhbxx | 来源:发表于2017-10-30 13:42 被阅读0次
    # __author__:Nzkalhbxx
    # __date__:17-10-29
    # 函数的实参包括必选参数, 默认参数, 可变参数, 关键字参数. 优先级由高至低
    # 当函数的参数有上述四类参数时, 必选参数必须放在所有参数的前面, 然后是默认参数, 再就是可变参数, 最后是关键字参数
    # 必须参数: 未赋默认值的形参, 调用函数时必须优先赋值
    # 默认参数: 赋予了默认值的形参
    # 可变参数: 跟在必选/默认参数之后, 关键字参数之前的参数, 非键值对key = value类型的数据
    # 关键字参数: 放置在所有参数之后, 以key = value形式赋值传递的数据类型
    
    def fun(name, age = 0, *args, **kwargs):
    # 语法报错: 必选参数必须放在默认参数之前
    # def fun(name="psj", age, *args, **kwargs):
    # 语法错误: 默认参数必须放在可变/关键字参数之前
    # def fun(age, *args, **kwargs, name="psj"):
        print(name)
        print("".center(33, "-"))
        print(age)
        print("".center(33, "-"))
        for i in args:
            print(i)
        print("".center(33, "-"))
        for i in kwargs:
            print("%s: %s"%(i, kwargs[i]))
    
    fun("psj", 19, [1, 2, 3], "wdq", 4, hobby="passion_fruit", sex="girl")
    
    # 错误, 关键字参数必须放在可变参数之后
    # fun("psj", age=19, [1, 2, 3], "wdq", 4, hobby="passion_fruit", sex="girl")
    
    # 语法错误: 默认参数必需放在可变参数之前, 如果默认参数不传递实参, 那么将去可变参数中窃取值
    # fun("psj", [1, 2, 3], "wdq", 4, age=19, hobby="passion_fruit", sex="girl")
    
    # fun("psj", [1, 2, 3], "wdq", 4, hobby="passion_fruit", sex="girl")
    
    # 语法错误: 默认参数必须置于可变参数和关键字参数之前, 必选参数之后
    # fun("psj", [1, 2, 3], "wdq", 4, hobby="passion_fruit", sex="girl", age=19)
    
    # 语法错误: age参数已经存在于默认参数中, 关键字参数不能再有形参名相同的参数
    # fun("psj", 19, [1, 2, 3], "wdq", 4, hobby="passion_fruit", sex="girl", age=19)
    
    运行结果

    相关文章

      网友评论

          本文标题:024_函数参数

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