Python.use(better) #Tutor: step08 -- def do_test(self, view, target, item)
‖記事一覧‖ Python.use(better)《Python3.1》
def do_test(self, view, target, item)
《著》小粒ちゃん+∞《監修》小泉ひよ子とタマゴ倶楽部
第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() ... 8: step08 -- def do_test(self, view, target, item):
事例:コードの解説
def step08(): """def do_test(self, view, target, item):""" class Tutor(object): ... def __call__(self, widget, target): s,*_ = widget.curselection() s = self.items[int(s)] self.do_help(self.help, target, s) self.do_test(self.view, target, s) #@: def do_test(self, view, target, item): view.delete(1.0, END) spec = target.__name__, item view.insert(END, "%s.%s"%spec) ## ---------------------------------------- def create_controller(self, master, target): ... widget = Listbox( master, width=max(len(e) for e in s), #@: font="courier 12", ) ...
■ #1: 特殊メソッド __call__
def __call__(self, widget, target): ... self.do_view(self.view, target, s) #@: def do_view(self, view, target, item): view.delete(1.0, END) spec = target.__name__, item view.insert(END, "%s.%s"%spec)
特殊メソッド __call__ は、メソッド呼び出し () に呼応して、その動作を規定します。
- メソッド delete を利用して、指定した範囲のテキストを削除します。
- メソッド insert を利用して、指定した位置にテキストを挿入します。