在函数中为变量赋值变量

时间:2010-05-06 22:34:33

标签: python function

假设我们有

def Foo(Bar=0,Song=0):  
    print(Bar)
    print(Song)

我想用函数sing和SongVal分配函数中的两个参数中的任何一个:

Sing = Song
SongVal = 2

这样可以像以下一样运行: Foo(Sing=SongVal) Sing将Song参数分配给SongVal为2。 结果应该像这样打印:

0
2

我应该重写我的功能还是可以按照我想要的方式进行? (使用上面的代码,你会得到一个错误,说Foo没有参数Sing。我理解为什么,有什么方法可以克服这个而不重写函数太多? 提前谢谢!

1 个答案:

答案 0 :(得分:4)

您正在寻找的是**kwargs传递任意关键字参数的方式:

kwargs = {Sing: SongVal}
foo(**kwargs)

有关更多示例,请参阅4.7 of the tutorial at www.python.org部分。