如何在python中干净地传递许多参数并具有默认值?

如何在python中干净地传递许多参数并具有默认值?,python,arguments,Python,Arguments,我有一个函数,它有很多(~25)个参数。但是,我通常希望使用大多数参数的默认值,并且只指定一对参数(使其值不是默认值)。所以我一直在做类似的事情(相同的想法,但本例中的参数更少): 这将使a的值为100,并保留b和c的默认值 到目前为止,这种方法一直有效。但是,它变得越来越麻烦,函数定义中有一百万个参数,而且如果我用大量参数调用函数 有更好的方法吗?我知道你可以传递关键字参数,作为一个dict,我想这几乎就是我想要的。但是,如何在函数中给出默认值呢 编辑:这不是的副本,因为它不能帮助我如何处理默

我有一个函数,它有很多(~25)个参数。但是,我通常希望使用大多数参数的默认值,并且只指定一对参数(使其值不是默认值)。所以我一直在做类似的事情(相同的想法,但本例中的参数更少):

这将使a的值为100,并保留b和c的默认值

到目前为止,这种方法一直有效。但是,它变得越来越麻烦,函数定义中有一百万个参数,而且如果我用大量参数调用函数

有更好的方法吗?我知道你可以传递关键字参数,作为一个dict,我想这几乎就是我想要的。但是,如何在函数中给出默认值呢


编辑:这不是的副本,因为它不能帮助我如何处理默认值

使用
**kwargs
并调用
.get()
,为每个项目指定所需的默认值

def myFn(self, **kwargs):
    self.a = kwargs.get('a', 20)
    self.b = kwargs.get('b', 10)
    self.c = kwargs.get('c', 5)
def myFn(self, **kwargs):
    self.a = kwargs.get('a', 20)
    self.b = kwargs.get('b', 10)
    self.c = kwargs.get('c', 5)