zoukankan      html  css  js  c++  java
  • Python学习之路——函数的参数分类

    今日内容

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

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

    '''

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

    实参

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


    *****
    注:混用
    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}


     

     

     

     

     

  • 相关阅读:
    ES6/ES2015核心内容(上)
    集合转数组的toArray()和toArray(T[] a)方法
    重复输出一个给定的字符串
    10道典型的JavaScript面试题
    用 JavaScript 检测浏览器在线/离线状态(JavaScript API — navigator.onLine)
    List<实体>与List<String>数据互转
    CSS实现四种loading动画效果
    Windows上安装Mac OS
    Android应用层View绘制流程之measure,layout,draw三步曲
    推断输入信息是否为空
  • 原文地址:https://www.cnblogs.com/king-home/p/10679635.html
Copyright © 2011-2022 走看看