Python.use(better) #Tutor: step04 -- def create_Frame(self, master)
‖記事一覧‖ Python.use(better)《Python3.1》《復刻版》
def create_Frame(self, master)
《著》小粒ちゃん+∞《監修》小泉ひよ子とタマゴ倶楽部
第0版♪2001/03/02 ● 第1版♪2003/05/25 ● 第2版♪2004/06/01 ● 第3版♪2009/02/28
基礎編で利用した学習ツールを作成する過程を通して「プログラミング」の理解を深めます。
※ Tcl/Tk で作成した例題を、Python3.1 で再構成しました。
事例:モジュールを起動する
■ 全項目を確認する
全ステップの「項目」を確認するには、関数 do を利用します。
$ python -i tutorTk.py >>> do() ... 4: step04 -- def create_Frame(self, master):
事例:コードの解説
def step04(): """def create_Frame(self, master):""" class Tutor(object): def __init__(self, master, target): self.help = self.create_help(master) frame = self.create_Frame(master) #@: self.create_controller(frame, target) ## ---------------------------------------- def create_Frame(self, master): widget = Frame(master) widget.pack(fill=BOTH, expand=True) return widget def create_controller(self, master, target): self.items = s = dir(target) widget = Listbox(master, font="courier 12") widget.pack(fill=BOTH, expand=True) widget.bind( "", lambda *args: self(widget), ) for e in s: widget.insert(END, e)
■ #1: リファクタリング
## ---------------------------------------- before def __init__(self, master, target): ... self.create_controller(master, target) ## ---------------------------------------- after def __init__(self, master, target): ... frame = self.create_Frame(master) self.create_controller(frame, target)
frame の傘下に、他の部品 widget を配置します。
■ #2: リファクタリング
## ---------------------------------------- before def create_controller(self, master, target): self.items = s = dir(target) frame = Frame(master) frame.pack(fill=BOTH, expand=True) widget = Listbox(frame, font="courier 12") ... ## ---------------------------------------- after def create_Frame(self, master): widget = Frame(master) widget.pack(fill=BOTH, expand=True) return widget def create_controller(self, master, target): self.items = s = dir(target) widget = Listbox(master, font="courier 12") ...
Frame を生成するコードの断片を、独立したメソッド create_Frame として抽出します。
》こちらに移動中です《
↑TOP