如何在Python中传递附加参数和*args

如何在Python中传递附加参数和*args,python,args,Python,Args,我有一个接受*arg和一个附加位置参数的函数。但是当调用这个函数时,我得到了下面的错误。如何传递此附加参数有何帮助 **error**: export_bundle() missing 1 required keyword-only argument: 'dict' 您使用可变数量的参数*args声明了函数export_bundle,因此如果要在末尾定义dict参数,则它必须是仅限关键字的参数dict。如果要传递dict的值,可以将其称为export_bundleid1,id2,dict=di

我有一个接受*arg和一个附加位置参数的函数。但是当调用这个函数时,我得到了下面的错误。如何传递此附加参数有何帮助

**error**:
export_bundle() missing 1 required keyword-only argument: 'dict'
您使用可变数量的参数*args声明了函数export_bundle,因此如果要在末尾定义dict参数,则它必须是仅限关键字的参数dict。如果要传递dict的值,可以将其称为export_bundleid1,id2,dict=dict

您使用可变数量的参数*args声明了函数export_bundle,因此如果要在末尾定义dict参数,则它必须是仅限关键字的参数dict。如果要传递dict的值,可以将其称为export_bundleid1,id2,dict=dict


始终先设置函数参数,然后设置*args、**kwargs

def export_bundle(self, dictm,*args):
   mem = MemoryStore()
   for sdo in args:
      mem.add([sdo])
   mem.save_to_file(self.output_location + str(dict['id']) + timestamp+ '.json')
    del mem```

始终先设置函数参数,然后设置*args、**kwargs

def export_bundle(self, dictm,*args):
   mem = MemoryStore()
   for sdo in args:
      mem.add([sdo])
   mem.save_to_file(self.output_location + str(dict['id']) + timestamp+ '.json')
    del mem```

仔细阅读错误消息:缺少仅限关键字的参数。无法定义在*args之后具有位置参数的函数。请仔细阅读错误消息:缺少仅限关键字的参数。无法定义在*args之后具有位置参数的函数。在函数定义中添加=无不会生成该参数只有关键字。将它放在*参数之后,使其仅为关键字=定义中没有为参数提供默认值,这是一个完全不相关的东西。东西=函数调用中的任何东西都通过关键字传递参数。thing=函数定义中的任何内容都为参数提供默认值。这两件事100%不相关,但碰巧使用了令人困惑的相似语法。@user2357112supportsMonica你说得对。我刚刚测试过,似乎是这样。为了最小化OP代码的更改,我删除了=None。当我按照您的建议调用函数时,我也遇到了以下错误:“dict”对象没有“output_location”属性。一定有办法超越自我argument@st_bones您得到的错误似乎与您以前的错误无关。这是因为您正在访问self参数的属性output_位置,在本例中是id1,它在Identity对象中不存在。在函数定义中添加=None不会使参数关键字成为only。将它放在*参数之后,使其仅为关键字=定义中没有为参数提供默认值,这是一个完全不相关的东西。东西=函数调用中的任何东西都通过关键字传递参数。thing=函数定义中的任何内容都为参数提供默认值。这两件事100%不相关,但碰巧使用了令人困惑的相似语法。@user2357112supportsMonica你说得对。我刚刚测试过,似乎是这样。为了最小化OP代码的更改,我删除了=None。当我按照您的建议调用函数时,我也遇到了以下错误:“dict”对象没有“output_location”属性。一定有办法超越自我argument@st_bones您得到的错误似乎与您以前的错误无关。这是因为您正在访问self参数的属性output_位置,在本例中是id1,它在Identity对象中不存在。当我按照您的建议调用函数时,我遇到了以下错误:“dict”对象没有“output_location”属性。一定有什么方法可以传递自变量?当我按照您的建议调用函数时,我发现了以下错误:“dict”对象没有“output_location”属性。一定有办法通过自我辩论?
def export_bundle(self, dictm,*args):
   mem = MemoryStore()
   for sdo in args:
      mem.add([sdo])
   mem.save_to_file(self.output_location + str(dict['id']) + timestamp+ '.json')
    del mem```