所以我很难理解*args
和**kwargs
的概念。
到目前为止,我了解到:
*args
=参数列表-作为位置参数**kwargs
=dictionary-其键成为单独的关键字参数,值成为这些参数的值。
我不明白这对编程任务有什么帮助。
也许:
我想输入列表和字典作为函数的参数,同时作为通配符,这样我就可以传递任何参数了?
有没有一个简单的例子来解释如何使用*args
和**kwargs
?
另外,我找到的教程只使用了“*”和变量名。
*args
和**kwargs
只是占位符还是在代码中正好使用*args
和**kwargs
?
Tags:
使用
*args
和**kwargs
非常有用的地方之一是子类化。这样就可以扩展Foo类的行为,而不必对Foo了解太多。如果您正在编程到一个可能会改变的API,这会非常方便。MyFoo只是将所有参数传递给Foo类。
The syntax is the ^{} and ^{} 。名字
*args
和**kwargs
只是按惯例使用,但没有硬性要求。当您不确定可以向函数传递多少个参数时,您可以使用
*args
,也就是说,它允许您向函数传递任意数量的参数。例如:类似地,
**kwargs
允许您处理未预先定义的命名参数:您也可以将这些参数与命名参数一起使用。显式参数首先获取值,然后将所有其他参数传递给
*args
和**kwargs
。命名参数排在列表的第一位。例如:您也可以在同一个函数定义中同时使用这两个函数,但是
*args
必须在**kwargs
之前发生。调用函数时还可以使用
*
和**
语法。例如:正如您在本例中看到的,它获取项目列表(或元组)并将其解包。通过这个,它将它们与函数中的参数相匹配。当然,在函数定义和函数调用中都可以有一个
*
。下面是一个使用3种不同类型参数的示例。
相关问题 更多 >
编程相关推荐