我可以动态地将参数列表传递给具有预定义参数的python函数吗?

kum*_*ar5 2 python

我有一个python函数bar(a=None, b=None, c=None, d=None, e=None).我想知道是否可以使用列表或字符串或其他东西构建我想要传入的参数列表.

我会有一个要查找的属性列表,理想情况下我会简单地循环它们并构建参数字符串.

例如,类似于:

dict = {'a' : 5, 'c' : 3, 'd' :9} 
arg_string = ""
for k, v in dict.iteritems():
    arg_string += "{0}={1},".format(k, v)

bar(arg_string)
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我没有传递给b和e的任何值,但是下次程序运行时可能会有.

这可能吗?

我知道在for循环中构建的字符串可能因为最后的逗号而无效.但我认为没有必要为此编写处理方法

mgi*_*son 9

好消息是你甚至不需要字符串...

mapping = {'a': 5, 'c': 3, 'd': 9} 
bar(**mapping)
Run Code Online (Sandbox Code Playgroud)

应该管用.请参阅官方python教程中的解包参数列表(和周围材料).