zoukankan      html  css  js  c++  java
  • python之函数形参、实参、可变长参数整体使用和分类

    形参与实参

    '''
    def fn(形参们):
    pass

    fn(实参们)
    '''
    # 形参:定义函数,在括号内声明的变量名,用来结束外界传来的值
    # 实参:调用函数,在括号内传入的实际值,值可以为常量、变量、表达式或三者的组合

    # 注:形参随着函数的调用而产生,随着调用结束而销毁(有特例)

     

    实参分类

    '''
    位置实参:必须按照顺序给形参传值
    关键字实参:按照关键字给形参传值,所以顺序可以颠倒

    # 注:位置实参、关键字实参共存是,关键字实参必须出现在所有位置实参之后
    '''

     

    形参的分类

    '''
    位置形参:位置实参与关键字实参都可以对其传参
    默认形参:位置实参与关键字实参都可以对其传参,也可以不被传参
    可变长位置形参:接收位置形参、默认形参没有接收完的所有位置实参
    无初值关键字形参:只能由关键字实参传值
    有初值关键字形参:只能由关键字实参传值,也可以不被传值
    可变长关键字参数:接收两种关键字形参没有接收完的所有关键字实参

    注:各种形参出现的先后
    位置形参 - 默认形参 - 可变长位置形参 - 无|有初值关键字形参 - 可变长关键字参数
    '''
    def fn(a, b, c=10, *args, d, e=20, f, **kwargs):
       pass
    # 位置形参:a、b
    # 默认形参:c
    # 可变长位置形参:args
    # 无初值关键字形参:d、f
    # 有初值关键字形参:e
    # 可变长关键字参数:kwargs

     

    可变参数的整体使用

    # 1、可变位置形参以元组方式接收值
    # 如:接收10,20,30三个数
    def fn1(*args):
       print(args)  # (10, 20, 30)
       
    # 第一种传参
    fn1(10, 20, 30)

    # 第二种传参
    t = (10, 20, 30)  # 单列集合及字符串类型都可以
    fn1(*t)


    # 2、可变位置实参以字典方式接收值
    def fn2(**kwargs):
       print(kwargs)  # {'name': 'Owen', 'age': 18}
    # 第一种传参
    fn2(name='Owen', age=18)

    # 第二种传参
    d = {'name': 'Owen', 'age': 18}  # 单列集合及字符串类型都可以
    fn2(**d)

     

  • 相关阅读:
    ioS开发之CoreLocation(GPS定位)
    iOSiOS开发之退出功能(易错)
    iOS开发之判断横竖屏切换
    iOS开发之左右抖动效果
    iOS开发之UIPopoverController
    thinkphp or查询
    Invalid left-hand side in assignment
    实现input表单从右向左输入
    thinkPhp不为空查询
    array_filter()用法
  • 原文地址:https://www.cnblogs.com/dongxixi/p/10648686.html
Copyright © 2011-2022 走看看