Python:调用具有不同数量参数的函数

时间:2013-10-05 13:49:12

标签: python variadic-functions

我想编写一个将字典转换为Gtk-ListStore的函数,其中Gtklist-store应该有n列,第一列是字典的键和值,其余是空字符串。 N应该由用户给出。

ListStore的构造函数需要列的类型。如何用正确的数字指定它们?

这是仅支持2或3列的函数来演示问题:

def dict2ListStore(dic, size=2):
  if size == 2:
    liststore = Gtk.ListStore(str, str)
    for i in dic.items():
       liststore.append(i)
    return liststore
  elif size == 3:
    liststore = Gtk.ListStore(str, str, str)
    for i in dic.items():
       l = list(i)
       l.append("")
       liststore.append(l)
    return liststore
  else:
    print("Error!")
    return

1 个答案:

答案 0 :(得分:3)

liststore = Gtk.ListStore(*([str] * size))

[str] * sizesize重复str的列表。

func(*args)是将序列args中包含的值作为多个参数传递的方法。