最近我一直在做这样的事情:
import Tkinter
class C(object):
def __init__(self):
self.root = Tkinter.Tk()
def f():
print 'hello'
self.button = Tkinter.Button(master=self.root, command=f, text='say hello')
而不是这样的:
import Tkinter
class C(object):
def __init__(self):
self.root = Tkinter.Tk()
self.button = Tkinter.Button(master=self.root, command=self.f, text='say hello')
def f(self):
print 'hello'
这个问题并不特定于 Tkinter,但它是一个很好的例子。该函数f
仅用作按钮的回调,因此我选择在内部定义它__init__
。这样,只有内部的代码__init__
甚至知道f
' 的存在——外部范围不会开始被名称弄得一团糟,用户也不需要关心大量设计为内部的方法。
我的问题是:这算是好的风格吗?我很担心,因为我有一个带有很多按钮的 GUI 类 -__init__
开始看起来很长,有很多本地函数定义。我应该使用更合适的替代方案吗?