最近私はこのようなことをしています:
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__
ます。ローカル関数の定義が多く、非常に長く見え始めています。私が使用すべきより適切な代替手段はありますか?