# -*- coding=utf-8 -*- # 堆栈的top可以预先指定,实时变更,也可以只求stack长度,实时汇报 class Stack(object): def __init__(self, size): self.stack = [] self.size = size # self.top = len(self.stack) @property def top(self): return len(self.stack) def isfull(self): return self.top == self.size def isempty(self): return self.top == 0 def push(self, new_value): if not self.isfull(): self.stack.append(new_value) # self.top += 1 else: raise Exception('stack is full') def pop(self): if not self.isempty(): self.stack.pop() # self.top -= 1 else: raise Exception('stack is empty') def show(self): print self.stack s = Stack(10) print s.top for i in range(10): s.push(i) print s.stack print s.top # for i in range(11): # s.pop()