Python.use(better) #Stack: step01 -- def push(self, item):

記事一覧 Python.use(better)《Python3.1》

def push(self, item):

《著》小粒ちゃん+∞《監修》小泉ひよ子とタマゴ倶楽部
第0版♪2001/03/02 ● 第1版♪2003/05/25 ● 第2版♪2004/06/01 ● 第3版♪2009/02/28

クラスを用いない OOP を実践することで、OOP の理解を深めます。
※ Python1.5 で作成した例題を、Python3.1 で再構成しました。

事例:モジュールを起動する

■ 全項目を確認する

全ステップの「項目」を確認するには、関数 do を利用します。

$ python -i stack_func.py
>>> do()
...
1: step01 -- def push(self, item):
■ 各項目を実行する

各ステップの「動作」を確認するには、関数 do に実引数を指定します。

>>> do(1)
>>> # -------------------------------------------------- step01
    
>>> >>> s = Stack(); s.items [] >>> push(s, "A"), s.items (None, ['A']) >>> push(s, "B"), s.items (None, ['A', 'B']) >>> pop(s), s.items NameError: name 'pop' is not defined >>>
  • 関数オブジェクト push を用意します。
  • 関数呼び出し push() でスタック s に要素を積むと、None がリターン値になります。
  • 関数 pop は未定義なので、例外 NameError を生成します。

事例:コードの解説

    def Stack():
        class Tips(object): pass
        self = Tips(); del Tips
        self.items = []
        return self

    def push(self, item):        #1:
        self.items.append(item)
■ #1: 関数
    def push(self, item):        #1:
        self.items.append(item)
関数 push は、スタック操作を実現したものです。
  • 引数 self を介して、スタック操作の対象になるインスタンスオブジェクトを参照します。
  • インスタンス属性 self.items にメソッド呼び出し append を適用すると、要素 item を末尾に追加します。
》こちらに移動中です《TOP

関連記事

Last updated♪2009/12/16

*1:C言語で学ぶ OOP -- use(C,better), 1992-1993.