**kwargs的目的和用途是什么?
2022-09-05 01:18:21
在Python中有什么用途?**kwargs
我知道你可以在一个表上做一个,然后传入一个参数。objects.filter
**kwargs
我也可以这样做来指定时间增量,即?timedelta(hours = time1)
它究竟是如何工作的?它是否被归类为“拆包”?喜欢?a,b=1,2
在Python中有什么用途?**kwargs
我知道你可以在一个表上做一个,然后传入一个参数。objects.filter
**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教程包含了它如何工作的良好解释,以及一些很好的例子。
对于 Python 3,请使用 items()
代替iteritems()
**
解压缩字典。
这
func(a=1, b=2, c=3)
与 相同
args = {'a': 1, 'b': 2, 'c':3}
func(**args)
如果您必须构造参数,这将非常有用:
args = {'name': person.name}
if hasattr(person, "address"):
args["address"] = person.address
func(**args) # either expanded to func(name=person.name) or
# func(name=person.name, address=person.address)
.items()
.iteritems()
def setstyle(**styles):
for key, value in styles.iteritems(): # styles is a regular dictionary
setattr(someobject, key, value)
这使您可以像这样使用该函数:
setstyle(color="red", bold=False)
kwargs
是用于关键字参数的变量名,可以使用另一个变量名。重要的部分是它是一本字典,它使用双星号运算符解压缩。**
*
kwargs
args