`
cooler1217
  • 浏览: 380055 次
  • 性别: Icon_minigender_1
  • 来自: 长春
社区版块
存档分类
最新评论

python **args * args

 
阅读更多
转载  http://jimi68.iteye.com/blog/200514



先来看个例子:
def foo(*args, **kwargs):
    print 'args = ', args
    print 'kwargs = ', kwargs
    print '---------------------------------------'

if __name__ == '__main__':
    foo(1,2,3,4)
    foo(a=1,b=2,c=3)
    foo(1,2,3,4, a=1,b=2,c=3)
    foo('a', 1, None, a=1, b='2', c=3)

输出结果如下:
args =  (1, 2, 3, 4)
kwargs =  {}
---------------------------------------
args =  ()
kwargs =  {'a': 1, 'c': 3, 'b': 2}
---------------------------------------
args =  (1, 2, 3, 4)
kwargs =  {'a': 1, 'c': 3, 'b': 2}
---------------------------------------
args =  ('a', 1, None)
kwargs =  {'a': 1, 'c': 3, 'b': '2'}
---------------------------------------
可以看到,这两个是python中的可变参数。*args表示任何多个无名参数,它是一个tuple;**kwargs表示关键字参数,它是一个dict。并且同时使用*args和**kwargs时,必须*args参数列要在**kwargs前,像foo(a=1, b='2', c=3, a', 1, None, )这样调用的话,会提示语法错误“SyntaxError: non-keyword arg after keyword arg”。

呵呵,知道*args和**kwargs是什么了吧。还有一个很漂亮的用法,就是创建字典:
    def kw_dict(**kwargs):
        return kwargs
    print kw_dict(a=1,b=2,c=3) == {'a':1, 'b':2, 'c':3}
其实python中就带有dict类,使用dict(a=1,b=2,c=3)即可创建一个字典了。

“人生苦短,我用python。”
分享到:
评论

相关推荐

    python函数参数*args**kwargs用法实例

    def fun_var_args(farg, *args): print ‘args:’, farg for value in args: print ‘another arg:’,value # *args可以当作可容纳多个变量组成的list或tuplefun_var_args(1, ‘two’, 3, None) #args: 1#another...

    Python可变参数*args和**kwargs用法实例小结

    在Python编程中,`*args` 和 `**kwargs` 是两个非常有用的语法特性,它们允许函数接收可变数量的参数。这些参数在函数定义时并不知道具体的数量,因此在需要处理不确定参数个数的情况时非常有用。本文将深入探讨这两...

    Python *args和**kwargs用法实例解析

    一、*args的使用方法 *args 用来将参数打包成tuple给函数体调用 def fun(*arg): print(arg,type(arg)) print(*arg) fun(1,2,[8,9]) (1, 2, [8, 9]) 2 [8, 9] 并不一定必须是args,也可以是别的,但是官方不建议...

    Python 中的*args 和**kwargs

    在Python编程语言中,`*args` 和 `**kwargs` 是两种非常重要的语法特性,它们允许函数接收可变数量的参数。这些参数在函数定义时不是预先定义好的,而是根据调用函数时传递的参数数量动态调整的。下面将详细解释它们...

    Python中args和kwargs的灵活应用与实践

    在Python函数编程中,*args和**kwargs是处理可变数量参数的两种非常灵活的方式。它们允许函数接受任意数量的位置参数和关键字参数,从而极大地增强了函数的通用性和灵活性。本文将详细介绍*args和**kwargs的概念、...

    Python中*args和**kwargs的区别详解

    在Python编程语言中,*args和**kwargs是两个非常重要的概念,它们用于函数定义中,允许函数接收不定数量的参数。尽管这两个概念在形式上类似,但它们处理参数的方式和用途有很大的不同。下面将详细解释*args和**...

    对python中的*args与**kwgs的含义与作用详解

    在Python编程语言中,*args和**kwargs是两个非常重要的特性,用于处理函数的可变数量参数。它们允许程序员向函数传递不确定数量的参数,并且以特定的方式处理这些参数。接下来,我们将详细解释这两个概念的含义和...

    python参数传递的*args和**kwargs

    *args:表示的就是将实参中按照位置传值,多出来的值都给args,且以元组的方式呈现, 主要是 用来表示函数接收可变长度的非关键字参数列表作为函数的输入。 **kwargs:表示的就是形参中按照关键字传值把多余的传值...

    Python函数中*args和**kwargs来传递变长参数的用法

    在Python编程语言中,函数参数的传递方式有很多种,其中*args和**kwargs是处理可变数量参数的特殊语法。这两个语法糖允许我们在函数定义时接收不确定数量的位置参数或关键字参数。本文将详细解释这两种语法的用法,...

    用实例说明python的*args和**kwargs用法

    先来看一个例子:复制代码 代码如下:>>> def foo(*args, **kwargs): print ‘args =’, args print ‘kwargs = ‘, kwargs print ‘———————–‘  >>> if __name__ == ‘__main__’: foo(1, 2, 3, 4) ...

    Python库 | python-args-1.0.1.tar.gz

    标题 "Python库 | python-args-1.0.1.tar.gz" 暗示我们讨论的是一个用于Python编程的特定库,它已经被打包为`.tar.gz`格式的压缩文件。`.tar.gz`是一种常见的文件打包格式,它结合了`.tar`(归档)和`.gz`(Gzip压缩...

    深入理解Python中的args和kwargs及其应用

    ### 深入理解Python中的args和kwargs及其应用 在Python编程中,`*args`和`**kwargs`是两个非常重要的语法特性,它们为函数提供了处理不定数量参数的能力,从而使得函数的设计更加灵活和通用。本文将详细介绍这两个...

    Python关键字及可变参数*args,**kw原理解析

    可变参数 顾名思义,函数的可变参数是传入的参数可以变化的,1个,2个到任意个。当然可以将这些 参数封装成一个 list 或者 tuple 传入,但不够 pythonic。使用可变参数可以很好解决该问题,注意可变参数在函数定义...

    Python星号*与**用法分析

    本文实例分析了Python星号*与**用法。分享给大家供大家参考,具体如下: 1. 加了星号(*)的变量名会存放所有未命名的变量参数,不能存放dict,否则报错。 如: def multiple(arg, *args): print arg: , arg #...

Global site tag (gtag.js) - Google Analytics