Python 如何使用**kwargs更改默认值?

Python 如何使用**kwargs更改默认值?,python,keyword-argument,Python,Keyword Argument,我有一个函数(我们叫它foo): 这里我有一个key的默认值,但是如果kwargs有一个key的值,我想用它来代替 有没有办法将其简化为1/2行?kwargs基本上属于dict类型。因此,默认不存在键的值的标准方法(和最佳实践)是使用: kwargs.get(键,默认值)使用默认值dict.get def foo(**kwargs): key = kwargs.get("key", "default") key=kwargs.get(“key”、

我有一个函数(我们叫它
foo
):

这里我有一个
key
的默认值,但是如果
kwargs
有一个
key
的值,我想用它来代替


有没有办法将其简化为1/2行?

kwargs
基本上属于
dict
类型。因此,默认不存在键的值的标准方法(和最佳实践)是使用:


kwargs.get(键,默认值)
使用默认值
dict.get

def foo(**kwargs):
    key = kwargs.get("key", "default")

key=kwargs.get(“key”、“default”)
?这就是
get
方法的基本要点。为什么在kwargs中也是这样?为什么不使用常规的默认参数机制呢?(只有在不希望按位置传递参数关键字的情况下,才可以使用参数关键字。)所以我可以使用
def foo(key=“default”)
来代替?那么,如果我可以使用它,
**kwargs
的意义是什么呢?例如,
dict
允许您执行
dict(x=3,justinbieber=4)
并获得
{x':3,'justinbieber':4}
,即使它没有声明名为
x
justinbieber
的参数。如果你想做这样的事情,那就是
**kwargs
的用途。它与默认值无关。Wrt“所以我可以使用
def foo(key=“default”)
来代替?”-是的
kwargs
允许函数具有任意关键字参数,如user2357112支持Monica的示例。如果您知道希望/期望函数使用哪些关键字参数,那么这些关键字参数应该在函数定义中。其余部分,请使用
kwargs
——参见上面jonrsharpe的链接问题。
def foo(**kwargs):
    key = kwargs.get("key", "default")