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

时间:2016-02-22 20:36:50

标签: 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)

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

这可能吗?

我知道在for循环中构建的字符串可能因为最后的逗号而无效。但我并不认为有必要为此处理

1 个答案:

答案 0 :(得分:5)

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

mapping = {'a': 5, 'c': 3, 'd': 9} 
bar(**mapping)

应该有效。请参阅官方python教程中的Unpacking Argument Lists(及其周边资料)。