**kwargs的目的和用途是什么?

  • 问题:
  • Python中**kwargs有何用途?在

    我知道你可以做一个对象.过滤器,并传入一个**kwargs参数。在

    我也可以这样指定时间增量,即timedelta(hours=time1)?在

    它到底是怎么工作的?它是“解包”类吗?比如a,b=1,2?在

  • 答案:
  • 您可以使用**kwargs让函数接受任意数量的关键字参数(“kwargs”表示“关键字参数”):

    >>> def print_keyword_args(**kwargs):
    ... # kwargs is a dict of the keyword args passed to the function
    ... for key, value in kwargs.iteritems():
    ... print "%s = %s" % (key, value)
    ...
    >>> print_keyword_args(first_name="John", last_name="Doe")
    first_name = John
    last_name = Doe

    在调用函数时,也可以通过构造关键字参数字典并将其传递给函数来使用**kwargs语法:

    >>> kwargs = {'first_name': 'Bobby', 'last_name': 'Smith'}
    >>> print_keyword_args(**kwargs)
    first_name = Bobby
    last_name = Smith

    Python Tutorial包含了它如何工作的很好的解释,以及一些很好的例子

    <–更新–&gt

    对于使用Python3的人,使用items()代替iteritems()