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コードを制御できる場合は、それらをにパックしnamedtuple、組み込みの名前をシャドウイングしないようにしてください。
  2. コードを制御できない場合は、ListStoreコードをタプルにパックし、を介して引数をアンパックしますgtk.ListStore(*yourtuple)
于 2012-11-01T16:32:58.747 に答える