Python.use(better) #課題:スタック《クラス版》

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

課題:スタック《クラス版》

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

課題を作成する過程を通して「クラス」の理解を深めます。
※ Python1.5 で作成した例題を、Python3.1 で再構成しました。

episode 《入門編》
2002-04-22 Python.use(better) #Stack: step00 -- class Stack(list)
新たなクラスを定義するには、予約語 class を利用します。class に続く名前 Stack を介して、新たな「クラス」オブジェクトを参照できます。クラスの名前 class に続く括弧の中には、その親になるクラス(組み込み型)list を指定します。新たなクラス Stack は、組み込み型 list の子クラスになります。すると、すべての Stack インスタンスは、自動的に list の機能を継承します。つまり、list に適用できるすべてのメソッドは、Stack インスタンスにも有効です。
2002-04-23 Python.use(better) #Stack: step01 -- def push(self, item)
新たなメソッドを定義するには、予約語 def を利用します。def に続く名前 push を介して、新たな「メソッド」オブジェクトを参照できます。メソッドの名前 push に続く括弧の中には、その対象になるインスタンス self に続けて、追加したい要素を表わす引数 item を指定します。
episode 《基礎編》
2002-04-24 Python.use(better) #Stack: step02 -- def pop(self)
□□□□□□
  • 2002-04-25 Python.use(better) #Stack: step03 -- class Stack(object):
  • 2002-04-26 Python.use(better) #Stack: step04 -- def __repr__(self):
  • 5: step05 -- def push(self, item):
  • 6: step06 -- def pop(self):
>>> 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
(None, [])

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

■ 全項目を確認する

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

$ python -i stack_class.py
>>> do()
0: step00 -- class Stack(list):
1: step01 -- def push(self, item):
2: step02 -- def pop(self):
3: step03 -- class Stack(object):
4: step04 -- def __repr__(self):
5: step05 -- def push(self, item):
6: step06 -- def pop(self):
>>>

》こちらに移動中です《
TOP


関連記事

Last updated♪2009/12/04