• 函数参数的应用


    函数参数的应用

    形参和实参

    • 形参就是函数在定义的时候,括号里的参数称为形式参数,本质就是变量名
    • 实参就是函数在调用的时候输入的参数,本质就是变量值
    def self_max(x, y):   # x,y就是形参
        if x > y:
            return x  
        else:
            return y
    
    print(self_max(2,6))   # 2,6就是实参
    
    6
    

    位置参数

    • 位置形参就是在函数定义阶段,按照从左到右的顺序依次定义的形参,称之为位置形参

      • 特点:按照位置定义的形参,都必须被传值,多一个不行,少一个也不行

    • 位置实参就是在函数调用阶段,按照从左到右的顺序依次定义的实参,称之为位置实参

      • 特点:按照位置为对应的形参依次传值

    关键字实参

    • 在调用函数时,按照key=value的形式为指定的参数传值,称为关键字实参

      1. 可以混用位置实参和关键字实参,但是位置实参必须在关键字实参的左边。

      2. 可以混用位置实参和关键字实参,但不能对一个形参重复赋值。

    def self_max(x, y):
        if x > y:
            return x  
        else:
            return y
    
    res = self_max(y=2,x=6)
    print(res)
    
    6
    

    默认形参

    • 在定义阶段就被赋值

    特点:在定义阶段就已经被赋值,意味着在调用时可以不用为其赋值
    注意:

    1. 位置形参必须放在默认形参的左边。
    2. 默认形参的值只在定义阶段赋值一次,也就是说默认参数的值在函数定义阶段就已经固定了
    def self_max(x, y=26):
        if x > y:
            return x  
        else:
            return y
    
    res = self_max(y=2,x=6)
    print(res)
    
    res = self_max(3)
    print(res)
    
    6
    26
    

    可变长参数

    可变长参数是指在调用函数时,传入的参数个数可以不固定

    函数调用无非两种方式,一种是位置实参,一种是关键字实参,因此形参也需要两种解决方式,以此来接收位置实参(*)和关键字实参(**)

    可变长之形参*

    形参中的*会将溢出的位置实参全部接受,然后以元组的形式赋值给*后的参数。

    • 注意:*后的参数名约定俗成为args
    def func(x,*args):
        print(x,args)
        
    func(1,4,2)
    
    1 (4, 2)
    

    可变长实参之*

    实参中的,会将中的参数循环取出,打散成位置实参。

    def func(x,*args):
        print(x,args)
        
    func(*(1,2),4)      # 将(1,2)打散为1,2传给x,y
    
    1 (2, 4)
    

    可变长形参之**

    形参中的**会将溢出的关键字实参全部接受,然后存储为字典的形式,再赋值给**的参数

    • 注意:**后的参数约定俗成为kwargs
    def wrapper(**kwargs):
        print(kwargs)
        
    wrapper(name='hades',age=27,weight=125)
    
    {'name': 'hades', 'age': 27, 'weight': 125}
    

    可变长实参之**

    实参中的**会将传入的字典打散成关键实参传给形参

    def func(x,y,z):
        print(x,y,z)
    
    func(**{'y':4,'x':3,'z':5})
    
    3 4 5
  • 相关阅读:
    百度员工揭秘百度八月最新优化的算法《绝密资料》
    解决IE8兼容问题只需要一句简短的代码
    选择Xen与OpenVZ哪种虚拟机做的VPS比较好?
    Windows VPS出现磁盘不足解决方法
    JiaSale 购物按钮 WordPress 插件:让你博客瞬间变成电商网站
    tb
    滚动marquee语法
    Change the marquee directions on button click left and right
    iOS多线程 GCD常见用法
    swift 中关于open ,public ,fileprivate,private ,internal,修饰的说明
  • 原文地址:https://www.cnblogs.com/Hades123/p/10997835.html
Copyright © 2020-2023  润新知