class MyStack: def __init__(self): self.stack = [] def push(self, item): self.stack.append(item) def pop(self): pass mystack = MyStack() mystack.push(0) mystack.push(1) mystack.push(2) print(mystack.stack)
$ python3 test.py
[0, 1, 2]
pop
def pop(self): result = self.stack[-1] del self.stack[-1] return result
print(mystack.pop())
print(mystack.pop())
取り出して削除なので、[-1]の後にdelを実行している。
上記と同じことをpop()と書くことができる。
def pop(self): return self.stack.pop()
stackが0の場合があるので、例外処理も書かなければならない。
def pop(self): if len(self.stack) == 0: return None return self.stack.pop()