2016-11-06 93 views
-1

我希望能够将变量的名称传递给一个函数,并让该函数调用另一个调用具有特定值的第一个函数的函数分配给变量名称。例如:python - 调用一个指定变量名称的变量名赋值给该变量的函数

# function with argument 'arg2' 
def foo(arg1=None, arg2=None, arg3=None): 
    print arg2 

# function that calls foo with a value assigned to designated variable 
def bar(var, value): 
    foo(var=value) 

所以,当我打电话

> foo(arg2, 10) 

我得到的输出

Output: 10 

这是如何完成的?

+0

有人可以解释你想要做什么?就像,你想要代码运行什么?请解释一步如步骤:你输入一个数字,它打印号码 –

回答

6

你不能那样做,因为它没有意义;名称arg2将始终引用该变量的值。

但是,您可以通过"arg2",并使用kwargs来调用该函数:

def bar(var, value): 
    foo(**{var: value}) 

虽然你会过得更好,直接这样做的,完全消除了对巴的需要。

+0

谢谢你解决了我的问题,我不知道kwargs,非常有用。我正在使用这个交叉验证函数,并且需要它能够在改变任意变量的值时调用任意函数。 – aconkey