Python 在gtk.ListStore中指定字段的更好方法

Python 在gtk.ListStore中指定字段的更好方法,python,gtk,pygtk,Python,Gtk,Pygtk,我有一个ListStore,其中有很多字段,大多数字段都是相同的: store = gtk.ListStore(str,str,str,str,str,str,str,str, gtk.gdk.Pixbuf,gtk.gdk.Pixbuf,gtk.gdk.Pixbuf,gtk.gdk.Pixbuf, gtk.gdk.Pixbuf,gtk.gdk.Pixbuf,gtk.gdk.Pixbuf,gtk.gdk.Pixbuf, gtk

我有一个
ListStore
,其中有很多字段,大多数字段都是相同的:

store = gtk.ListStore(str,str,str,str,str,str,str,str,
            gtk.gdk.Pixbuf,gtk.gdk.Pixbuf,gtk.gdk.Pixbuf,gtk.gdk.Pixbuf,
            gtk.gdk.Pixbuf,gtk.gdk.Pixbuf,gtk.gdk.Pixbuf,gtk.gdk.Pixbuf,
            gtk.gdk.Pixbuf,gtk.gdk.Pixbuf,gtk.gdk.Pixbuf,gtk.gdk.Pixbuf,
            gtk.gdk.Pixbuf,gtk.gdk.Pixbuf,str,)
有没有比这种可怕的重复更好的方法

编辑:所以这就结束了:

store = gtk.ListStore( *(8*(str,)+14*(gtk.gdk.Pixbuf,)+(str,)) )
我想可读性较差,但在编程上适应性更强

  • 如果您可以控制
    列表存储
    代码,请将它们打包成一个
    namedtuple
    ,并确保它们不会隐藏内置名称
  • 如果您无法控制
    ListStore
    代码,请将它们打包成一个元组,并通过
    gtk.ListStore(*yourtuple)
    解压参数

  • 不确定这是不是最好的答案,看起来很糟糕…@liberforce是的,正如我所说,它的可读性较差-但至少这样我可以使分配更具动态性,然后也许最好为此创建一个新的配置,而不是到处闪烁难看的不可读的东西。您将保持灵活性和可读性。