`
dacoolbaby
  • 浏览: 1265815 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Python tips 什么是*args和**kwargs?

阅读更多

先来看个例子:

 

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可变参数*args和**kwargs用法实例小结

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

    Python 中的*args 和**kwargs

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

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

    # 当函数的参数不确定时,可以使用*args和**kwargs。*args没有key值,**kwargs有key值 def fun_var_args(farg, *args): print ‘args:’, farg for value in args: print ‘another arg:’,value # *args可以当作...

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

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

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

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

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

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

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

    在Python编程语言中,`*args` 和 `**kwargs` 是两种特殊语法,它们用于处理函数调用时的可变参数。这些语法使得函数能够接受不确定数量的位置参数(`*args`)和关键字参数(`**kwargs`)。下面将详细解释它们的用法...

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

    ### 深入理解Python中的args和kwargs及其应用 在Python编程中,`*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中的*args与**kwgs的含义与作用详解

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

    lambda_kwargs_args:当您需要重新学习lambda函数,** kwargs和* args时,可以使用此仓库,也可以用于了解这些pythonic功能!

    lambda,** kwargs和* args 当您需要重新学习lambda functions , **kwargs和*args时,可以使用此repo,也可以用来了解这些pythonic功能! 用 :red_heart: 通过mmtmn

    【Python进阶】Word版,可自拓展知识点或写注记。

    在 Python 中,`*args` 和 `**kwargs` 是两种特殊的语法,用于处理不确定数量的参数。 - **`*args`**: 允许你在函数调用时传递任意数量的非关键字参数给函数。这些参数在函数内部作为一个元组(tuple)被接收。 - **`...

    对Python3 * 和 ** 运算符详解

    *args 和 **kwargs 主要用于函数定义。 你可以将不定数量的参数传递给一个函数。不定的意思是:预先并不知道, 函数使用者会传递多少个参数给你, 所以在这个场景下使用这两个关键字。其实并不是必须写成 *args 和 **...

    77.Python之定义可变参数共2页.pdf.zip

    本篇将深入探讨Python中的可变参数,包括位置参数、默认参数、*args 和 **kwargs。 一、位置参数 位置参数是最基础的参数类型,它们按照传入函数的顺序进行匹配。例如,下面的函数接受两个位置参数a和b: ```...

Global site tag (gtag.js) - Google Analytics