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

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

■ 全項目を確認する

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

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

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

>>> do(1)
>>> # -------------------------------------------------- step01
>>> s = Stack(); s
[]
    
> >>> s.push("A"), s (None, ['A']) >>> s.push("B"), s (None, ['A', 'B']) >>> s.pop(), s ('B', ['A']) >>> s.pop(), s ('A', ) >>> s.pop(), s IndexError: pop from empty list >>>
  • クラス呼び出し Stack() によって、新たなスタック s(インスタンス)を生成します。
  • スタック s にメソッド push を適用すると、末尾に要素を追加するとともに、None がリターン値になります。
  • スタック s にメソッド pop を適用すると、末尾から要素を削除するとともに、その要素がリターン値になります。
  • 空のスタック s にメソッド pop を適用すると、例外 IndexError を生成して、エラーメッセージを出力します。

事例:コードの解説

    class Stack(list):
        def push(self, item):      #1:
            self.append(item)        #2:
■ #1: メソッドの定義
        def push(self, item):      #1:
新たなメソッドを定義するには、予約語 def を利用します。
  • def に続く名前 push を介して、新たな「メソッド」オブジェクトを参照できます。
  • メソッドの名前 push に続く括弧の中には、
    • その対象になるインスタンス self に続けて、
    • 追加したい要素を表わす引数 item を指定します。
■ #2: メソッドの本体
            self.append(item)        #2:
メソッドの本体には、要素を追加するための処理を記述します。
  • self は、メソッド呼び出し push の対象になるインスタンスです。
  • self にメソッド append を適用すると、リスト list の末尾に要素 item を追加します。
《note》機能継承インスタンス self に対してメソッドを呼び出すと、必要なら親クラスのメソッドを呼び出します。
■ #3: メソッドのリターン値
メソッドのリターン値を省略すると、None を指定したものと見なされます。つまり、メソッド本体の末尾に
        def push(self, item):
            ...
            return None      #3:
と記述してあるのと同じです。 》こちらに移動中です《TOP

関連記事

Last updated♪2009/12/16