• 函数的参数


    '''
    实参:调用函数,在括号内传入的实际值,值可以为常量、变量、表达式或三者的组合

    *****
    形参:定义函数,在括号内声明的变量名,用来接受外界传来的值

    '''

    '''
    注:形参随着函数的调用而产生,随着调用结束而销毁
    '''

    实参

    '''
    位置实参:不用明确形参名的传参方式,一定按照位置给形参传值
    关键字实参:必须明确形参名字与值为形参传值,可以不用按照位置


    *****
    注:混用
    1.关键字实参必须出现在位置实参后
    2.多个位置实参还是按照位置传参
    3.关键字实参为没有从位置实参拿到值的形参传值,可以不用按照指定顺序
    '''
    def fn2(a, b, c, d, e, f):
       print(a, b, c, d, e, f)

    fn2(10, 20, 30, e=100, f=500, d=200)

     

    位置形参的范畴

    • 位置形参

    # positional argument
    def fn(a, b, c):
       print(a, b, c)
       
    # 位置形参可以由 位置实参 与 关键字实参 来传值
    fn(10, 20, 30)
    fn(a=10, b=20, c=30)
    • 默认形参

    def fn(a=10,b=20):
       print(a, b)
       
    # 默认形参可以由 位置实参 与 关键字实参 来传值,还可以不用传值(采用自身默认值)
    fn()
    fn(20, 30)
    fn(a=200, b=300)
    fn(100)  # 就给a传
    fn(b=100)  # 就给b传


    # 混用
    # 位置形参与默认形参同时存在,默认形参必须在后
    def fn1(a,b,c=10,d=20):
       print(a, b, c, d)

    # 位置形参必须传值,默认形参分情况传值
    fn1(100, 200, d=1000)

    • 可变长形参

    # 可变长形参会以 元组 形式接受 位置形参与默认形参未接受完的 所有传入的位置实参,用索引来取第几个
    # 可变长形参只能由 位置实参 来传值 *****
    def fn(a, b=10, *args):
       print(a, b)
       print(args)
       
       
    # 小细节:可变长形参只能接受位置实参的值,位置实参还必须在关键字实参前,
    #       导致默认形参只能由位置实参来传值
    fn(1, 20, 100, 200) # 1给a 20给b,不能用b=20传 100,200给args
       

    关键字形参范畴

    # 前提:出现在 * 之后的形参
    def fn(a, b=10, *, c, d=20, e)
    pass
    # c,d,e都是出现在*之后,都是关键字形参,由于必须由 关键字实参 来传值,没有顺序的强行要求


    # 可变长关键字形参:用来接收没有被关键字形参接收完的关键字形参,也只能由关键字实参来传值
    # 用字典来存放数据
    def fn(**kwargs):
       print(kwargs)
    fn(a=10,b=20)  # {'a': 10, 'b': 20}

    dic = {'x': 100, 'y': 200}
    fn(**dic)  # {'x': 100, 'y': 200}

    参数总结

    def fn(a, b, c=10, *args, d, e=20, f, **kwargs):
       pass
    # 位置形参:a、b
    # 默认形参:c
    # 可变长位置形参:args
    # 无初值关键字形参:d、f
    # 有初值关键字形参:e
    # 可变长关键字参数:kwargs


    # 1.位置形参与默认形参: 能用 位置实参 关键字实参 传值
    # 2.可变长位置形参:只能 位置实参 传值
    # 3.所以关键字形参:只能 关键字实参 传值
  • 相关阅读:
    Zend Framework 2.1.5 中根据服务器的环境配置调用数据库等的不同配置
    在基于 Eclipse 的 IDE 中安装和使用 Emmet(ZenCoding)
    【翻译】Emmet(Zen Coding)官方文档 之六 自定义 Emmet
    【翻译】Emmet(Zen Coding)官方文档 之二 缩写
    【翻译】Emmet(Zen Coding)官方文档 之七 一览表
    【翻译】Emmet(Zen Coding)官方文档 之三 CSS 缩写
    【翻译】Emmet(Zen Coding)官方文档 之四 动作
    【翻译】Emmet(Zen Coding)官方文档 之一 web 编程的必备工具
    Zend Framework 2 时区设置警告问题的解决
    【翻译】Emmet (Zen Coding) 元素类型
  • 原文地址:https://www.cnblogs.com/zhangdajin/p/10636451.html
Copyright © 2020-2023  润新知