1

我有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,)) )

我猜可读性较差,但在编程上更具适应性

4

1 回答 1

2
  1. 如果您可以控制ListStore代码,请将它们打包成 anamedtuple并确保它们不会隐藏内置名称。
  2. 如果您无法控制ListStore代码,请将它们打包成一个元组并通过gtk.ListStore(*yourtuple).
于 2012-11-01T16:32:58.747 回答