Python 在函数中为变量赋值

Python 在函数中为变量赋值,python,function,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没有

假设我们有

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。我理解为什么,有什么方法可以克服这个问题,而不需要重写太多函数?
提前感谢!

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

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

有关更多示例,请参见章节。

您要查找的是传递任意关键字参数的
**kwargs
方法:

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

有关更多示例,请参阅部分。

成功,谢谢!只有需要更改的内容Sing才等于字符串Sing=“Song”成功,谢谢!只有需要更改的内容Sing才等于字符串Sing=“Song”