传递任意数量的参数

时间:2017-07-13 15:15:58

标签: python function

现在我正在尝试这样做:

def Setup(Param1) :
    repeat(Param1=Param1)

def perform(**kargs) :
    Param1.func()

class Param1 :
    def func(Self) :
        Do_Stuff_To_Self
        return Self

我不确定我是否正确代表我的代码,但是这是一个如此庞大的复杂项目,我觉得发布整个事情会让这更糟糕,但实质上我正在处理将执行代码的各种(执行)包装每个人“func”之间的情况类似,但是当我制作它并尝试构建时,我收到了错误:

global name 'Param1' is not defined.

我使用了调试器,发现kargs正确存储'Param1':“......在实例0x ......”所以我不确定为什么说Param1没有定义?

任何帮助都将不胜感激。

谢谢,

威轮

1 个答案:

答案 0 :(得分:1)

将任意命名的参数传递给Python中的函数会将其存储在kwargs字典中。

示例:

def do_stuff(**kwargs):
  kwargs.get('param1')  # would be 'param1'
  kwargs.get('param2')  # would be 5

do_stuff(param1='param1', param2=5)

您还可以使用未命名参数,将参数存储为列表

def do_stuff2(*args):
  args[0]  # would be 'param1'
  args[1]  # would be 5

do_stuff2('param1', 5)