Python.use(better) #Tutor: step00 -- Tk()
‖記事一覧‖ Python.use(better)《Python3.1》
Tk()
《著》小粒ちゃん+∞《監修》小泉ひよ子とタマゴ倶楽部
第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() 0: step00 -- Tk() 1: step01 -- class Tutor(object): 2: step02 -- def create_controller(self, master, target): 3: step03 -- def __call__(self, widget): 4: step04 -- def create_Frame(self, master): 5: step05 -- def create_Scrollbar(self, master, listbox, orient): 6: step06 -- def create_view(self, master): 7: step07 -- def do_help(self, view, target, item): 8: step08 -- def do_test(self, view, target, item): 9: step09 -- def eval_tips(self, view, target, item): >>>
■ 各項目を実行する
各ステップの「動作」を確認するには、関数 do に実引数を指定します。
>>> do(0) >>> # -------------------------------------------------- step00>>> >>> s = Stack(); s.items [] >>> push(s, "A"), s NameError: name 'push' is not defined >>>
- 関数オブジェクト Stack が用意されています。
- 関数呼び出し Stack() のリターン値として、インスタンスオブジェクト s が得られます。
- インスタンス属性 s.items を参照すると、空のリスト [] が得られます。
- 関数 push は未定義なので、例外 NameError を生成します。
事例:コードの解説
def Stack(): class Tips(object): pass #1: self = Tips(); del Tips self.items = [] #2: return self
■ #1: 局所クラス
class Tips(object): pass #1: self = Tips(); del Tips局所クラス Tips は、インスタンスオブジェクトを得るための便宜的なものです。
- そのため、クラス Tips の本体は、空 pass になっています。
- Tips は、object を拡張しただけで、何も変化はありません。
- ただし、組み込み型と違って、新たなインスタンス属性を付加できます。
- インスタンス self を生成した後で、不要になったクラスオブジェクト Tips を削除します。
《Note》何もしないことに意義がある:構文規則に従うと、そこに文を記述する必要があっても、そこで何も実行したくないときには、空文として pass を利用します。
関連記事
- Python への扉
- INDEX《Python》class
- INDEX《Python》pass
- INDEX《Python》del
- 2002-01-13 Python.use(better) 課題:スタック《クラス版》
Last updated♪2009/10/24