zoukankan      html  css  js  c++  java
  • [Tips]python的*args和**kwargs

    当函数的参数不确定时,可以使用*args 和**kwargs,*args 以元组方式存贮,**kwargs是字典格式。

    *args

    def ff(*args):
        for value in args:
            print "arg:", value
     
    ff(1, "two", 3) # *args可以当作可容纳多个变量组成的元组
    

      

    **kwargs

    def ff(**kwargs):
        for key in kwargs:
            print "keyword arg: %s: %s" % (key, kwargs[key])
    

      

    args代表的是位置参数,而kwargs代表的是关键字参数。

    位置参数:在函数定义阶段,按照从左到右的顺序定义的形参,称为位置形参 特点:但凡是按照位置定义的形参。都必须被传值,多一个不行,少一个也不行。

    关键字实参:在调用函数时,按照key=value的形式为指定的参数传值,称为关键字实参 特点:打破位置的限制,但仍能为指定的形参赋值 foo(y=1,x=2)

     注意,此时args和kwargs在函数内部直接用的时候,分别是元组和字典,如果想把他们依然按照不定参数的方式传递给其他函数(比如对print函数做个包装,将包装函数中传给print函数的参数传给print函数,见示例),那就继续使用*args和**kwargs。

    def ff(*args, **kwargs):
        print(args[0])
        for k,v in kwargs.items():
          print(k, v)
        print(*args)
    

      

  • 相关阅读:
    中国大学生计算机设计大赛
    static关键字
    C++语言的术语“引用”
    指针常量,常量指针
    汉字统计
    C读取文件
    Clock(win32)
    航空订票管理系统
    哈夫曼编码-数据结构实验
    php require、require_once和include、include_once的区别
  • 原文地址:https://www.cnblogs.com/immortalBlog/p/11435108.html
Copyright © 2011-2022 走看看