• 参数详解


    """
    形参与实参
    形参即形式参数,就是在定义函数时括号中指定的参数,本质就是一个名字
    实参即实际参数,指的是在调用函数的时候传入的参数,是一个实际的值
    在调用函数式就会自动把形参(变量名)和实参(值)进行绑定,
    在函数调用结束之后绑定关系就解除了

    根据调用阶段 参数分为两类 形参和实参
    所以对应的 位置参数也有两种:
    位置形参

    位置实参
    位置,其实指的是顺序,从左往右来定义的参数就是位置(顺序)参数
    需要注意的是:
    只要是定义了的位置形参都必须被传值
    位置形参的数量与位置实参的数量必须一致,不能多传,也不能少传
    实参会按照传入的位置依次赋值给形参

    3.关键字参数
    关键字实参
    在调用函数时,指名道姓的为形参赋值就称之为关键字参数
    其优点是:
    可以打破传入参数的顺序 可以不与形参顺序相同
    注意:
    1.不管以什么样的方式传值,每一个形参都必须被传值
    2.关键字参数必须位于位置参数的后面
    3.不能为同一个参数传多次值
    4.使用关键字传参时,实参的名字必须与形参的名字匹配

    到底是位置参数还是关键字参数 由实参决定


    默认形参
    在定义时,就已经为形参指定了一个值,那这个形参就称之为默认形参
    特点:
    在调用时可以不用为默认形参传值,使用这个参数时就是默认值
    当然也可以传值,这样的话内部使用就是你传入的值
    场景:
    当函数中的某一形参经常出现重复的值时,就可以将其定义为默认形参,
    可以简化调用代码

    需要注意
    1.默认形参必须放在非默认形参的后面
    2.默认形参的值在定义时就已经固定了
    3.不应该将默认形参的默认值设置为一个可变类型,
    会导致 每次函数调用都共用同一个默认参数,我们应该将函数设计为独立的功能 每次调用互不干扰
    只能是 int float str tuple

    可变长参数指的是,可以传任意个数的实参
    传入实参是为了给形参来使用,那就意味,必须让形参也具备可以接受任意个数的实参的能力
    也就是*和**

    *的使用
    带*的形参
    带*的形参表示可以接受任意个数的实参,接收到的实参会被打包成元组类型
    形参的名字可以随意,但是建议用args 是arguments的缩写

    带*的实参
    在实参前面加*,会自动将*后的值,打散("abc" 打散 成了 "a","b","c")

    带*的形参不能接收关键字实参

    可变长形参与位置形参混合使用
    1.当可变长形参出现在了位置形参的前面时,那么后面的位置形参必须以关键字实参来传入
    2.当可变长形参出现在位置形参后面,会先按照顺序给前面位置形参赋值最后剩余的就赋值给可变长args

    **的使用
    形参中如果带有**,会把关键字实参打包成字典类型传入
    只能接收多出来的关键字实参

    实参中带**,会把**后的字典(也必须是字典类型)打散,成关键字实参(**{"a":1} 打散为 a = 1)

    * 和 **可以为函数预留扩展空间,后期可以根据需求增加参数,而且旧的函数调用方式也不会出现问题
    简单地说就是提高函数的扩展性

    """
  • 相关阅读:
    hreeJS加载Obj资源后如何实现内存释放?
    cookies,sessionStorage 和 localStorage 的区别
    解决ios手机页面overflow scroll滑动很卡的问题
    移动端计算滑动的距离
    设置滚动位置
    css实现右侧固定宽度,左侧宽度自适应
    5.Javascript 原型链之原型对象、实例和构造函数三者之间的关系
    3.说一下你了解的弹性FLEX布局.
    一些面试题 没有答案
    嵌入式开发板和学习推荐平台——最新迅为4412开源硬件开发板
  • 原文地址:https://www.cnblogs.com/xiezuodd/p/10257118.html
Copyright © 2020-2023  润新知