zoukankan      html  css  js  c++  java
  • python函数参数*args **kwargs

    毕业多年,把C++都就饭吃了。。。。今天居然在纠结什么是形参什么是实参。。。。。

    定义函数里面写的参数就是形参,因为没有内存占用,实际调用时写的参数就是实参,因为有内存占用和传值

    然后就是位置参数,可变参数和关键字参数

    def foo(a,*b,**c):
        print(a)
        print(b)
        print(c)
    
    
    if __name__=="__main__":
        foo(1,2,3,4,k=1,g=2)

    如上图程序,a,*b,**c这三个是形参,a,*b这两个是位置参数,**c是关键字参数,同时*b,**c这两个是可变参数

    1,2,3,4,k=1,g=2这几个是实参,1,2,3,4是位置参数;k=1,g=2是关键字参数;1赋值给a;2,3,4以元组的形式赋值给*b;k=1,g=2以字典的形式付给**c

    输出是这样子的

    1
    (2, 3, 4)
    {'g': 2, 'k': 1}

    所以fun(*args,**kwargs)中

    *args:(表示的就是将实参中按照位置传值,多出来的值都给args,且以元组的方式呈现)

    **kwargs:(表示的就是按照关键字把传值以字典的方式呈现)

    这里要注意,**kwargs所传的关键字内容可以是值(数值、列表、元组、字典等)可以是函数,也可以是类

  • 相关阅读:
    java基础学习
    形参和返回值
    内部类
    常用API(String、StringBuilder)【1】
    什么是servlet
    servlet2.5和3.0的区别,servlet4.0注解
    什么是事务
    jdk环境配置(转载)
    idea中运行Tomcat后控制台出现乱码(统一设置成UTF-8)
    java数组
  • 原文地址:https://www.cnblogs.com/mghhzAnne/p/9052220.html
Copyright © 2011-2022 走看看