在Python函数中使用**kwargs

在Python函数中使用**kwargs,python,keyword-argument,Python,Keyword Argument,考虑以下方法: def find_missing(self, **kwargs): if save == True: tmp = find_one_missing(self.data) tmp.to_csv(path) else: return find_one_missing(self.data) 我试图实现的是变量save和path变为kwargs,使用该变量可以指定 x.fin

考虑以下方法:

    def find_missing(self, **kwargs):
        if save == True:
            tmp = find_one_missing(self.data)
            tmp.to_csv(path)
        else:
            return find_one_missing(self.data)
我试图实现的是变量
save
path
变为
kwargs
,使用该变量可以指定

x.find_missing()
它将返回
find_one_missing()
函数的输出,或者用户可以插入

x.find_missing(save=True, path=user_string_pathway)
输出将自动保存到某个位置。我如何才能做到这一点?

请拨打:

find_missing(save=True, path="/path/...")
使用kwargs['save']和kwargs['path']访问该值

def find_missing(self, **kwargs):
        if kwargs['save'] == True:
            tmp = find_one_missing(self.data)
            tmp.to_csv(kwargs['path'])
        else:
            return find_one_missing(self.data)

您需要使用
kwargs[“保存”]
来访问它(在检查它是否存在之后)。类似于
path
。另一种选择是删除关键字参数,而是提供默认值,例如
def find_missing(self,save=None,path=None):
然后您可以正常访问参数。为什么要使用
**kwargs
?如果希望函数接受任意关键字参数,可以使用该函数。看起来你在寻找默认值和/或唯一关键字参数语法。另外,接口建议:考虑使用单个<代码> SaveIoto < /Cord>参数,或者只删除<代码>保存< /COD>参数,并保持<代码>路径< /代码>。您不需要两个单独的参数,使用一个参数可以避免人们传递不一致的参数时出现问题。