如何用n个参数调用一个函数,动态设置n?

时间:2013-05-16 12:21:39

标签: python

有没有办法将相同的参数n次传递给函数?

例如:

if len(menu) == 1:
    gtk.ListStore(str)
elif len(menu) == 2:
    gtk.ListStore(str, str)
elif len(menu) == 3:
    gtk.ListStore(str, str, str)

像这样,但“自动”......

3 个答案:

答案 0 :(得分:2)

我确定你的意思是:

gtk.ListStore(*menu)

序列可以 splatted 到函数调用的位置参数中。 splat必须位于位置参数的末尾,即:

foo(1, 2, *bar)

没关系,但你做不到

foo(1, *bar, 2)

答案 1 :(得分:1)

def  ListStore(*str_collection): #collect arguments passed into str_collection which is a tuple
    for s in str_collection:
        print(s)

ListStore("A","B","C")

输出:

>>> 
A
B
C

str_collection的类型为:

>>> 
<type 'tuple'>

答案 2 :(得分:0)

使用以下语法:

gtk.ListStore(*[str] * len(menu))