【问题标题】:Python function call, how to pass in multiple function parameters as a single variable string?Python函数调用,如何将多个函数参数作为单个变量字符串传入?
【发布时间】:2016-01-24 06:37:32
【问题描述】:

我有一个 Python 函数,它接受一个必需参数和四个可选参数。如果可选参数没有值,则需要在调用函数时将其省略。一个示例调用将如下所示,并指定了所有参数。

MyFunction(required='Delta', param1='ABC', param2='XYZ', ID=1234, title='Imp Info') 

我想将所有可选参数收集到一个变量中,然后将一个变量传递给函数。这将使处理可选参数更容易。类似于以下内容:

myVar = "param2='XYZ', ID=1234, title='Imp Info'"
MyFunction(param1='Delta', myVar) 

我已经尝试了上述方法,但由于语法错误而失败。如何将函数参数作为变量传递?我感谢任何指导。

【问题讨论】:

  • MyFunction(required, **kwargs),使用 kwargs 的字典...
  • 使用 **kwargs 是字典,可以解包

标签: python function python-2.7


【解决方案1】:

不要将它们作为字符串传递;将它们作为解压字典传入:

myVar = {'param2':'XYZ', 'ID':1234, 'title':'Imp Info'}
MyFunction(param1='Delta', **myVar)

** 将解压字典并将每个元素作为命名参数发送。

【讨论】:

    【解决方案2】:

    您可以使用MyFunction(parameters, *args, **kwargs),或者您可以定义一个方法来代替按空格分割字符串并解析或使用eval(不推荐)来分配变量。

    【讨论】:

      猜你喜欢
      • 2016-07-21
      • 2019-06-10
      • 2012-03-03
      • 2019-04-23
      • 2011-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-21
      相关资源
      最近更新 更多