栈:last in first out 先进后出的原则,只能在一端进行插入和删除操作
class Stack(object):
def __init__(self):
self.items = []
def is_empty(self):
return self.items == []
def peek(self):
return self.items[len(self.items)-1]
def size(self):
return len(self.items)
def push(self,item):
self.items.append(item)
def pop(self):
if self.items:
return self.items.pop()
return None
a = Stack()
a.push(1)
a.push(2)
a.push(3)
print(a.size()) # 3
print(a.is_empty()) # False
print(a.peek()) # 3
print(a.pop()) # 3
print(a.pop()) # 2
print(a.pop()) # 1
print(a.pop()) # None
如果希望items[]是Stack类私有的属性,这样做:
def __init__(self):
self.__items = []
如果希望限定Stack类的成员只有items,这样做:
class Stack(object):
__slots__ = ('__items')
def __init__(self):
self.