我在写GTK代码。我经常有一些不需要闭包的短回调,因为它们被传递了它们需要的所有参数。例如,我在创建 gtk.TreeViewColumns :
gtk.TreeViewColumns
def widthChanged(MAINCOL, SPEC, SUBCOL, expandable): if expandable: return w = MAINCOL.get_width() SUBCOL.set_fixed_width(w) cl.connect("notify::width", widthChanged, pnlcl, expand)
这可能是低效的,因为函数是在循环的每次迭代中创建的(附带问题:它是实际的,还是优化的?)但是,我觉得如果我把所有这些一行程序都移到顶层,代码会更混乱。有什么意见吗?
选择最可读的样式。不要担心速度,除非您的代码分析工具告诉您该区域是一个热点。