Stack 堆栈: 后进先出
Queue队列 : 先进先出 FIFO(FIRST IN FIRST OUT)
put
get
# Queue队列 : 先进先出 FIFO(FIRST IN FIRST OUT)
# put
# get
# class Queue:
# def __init__(self):
# self.l = []
# def put(self,item):
# self.l.append(item)
# def get(self):
# return self.l.pop(0)
# q = Queue()
# q.put(1)
# q.put(2)
# q.put(3)
# print(q.get())
# print(q.get())
# print(q.get())
# 假设你希望一个类的多个对象之间 的某个属性 是各自的属性,而不是共同的属性
# 这个时候我们要把变量存储在对象的命名空间中,不能建立静态变量,
# 建立静态变量是所有的对象共同使用一个变量
# class Stack:
# def __init__(self):
# self.l = []
# def put(self,item):
# self.l.append(item)
# def get(self):
# return self.l.pop()
#
# s1 = Stack()
# s2 = Stack()
# s1.put(1)
# s2.put('a')
# s2.put('b')
# s2.put('c')
# s1.put(2)
# s1.put(3)
# print(s2.get())
# print(s1.get())
# print(s2.get())
# print(s2.get())
# print(s1.get())
# s1.put(4)
# print(s1.get())
# print(s1.get())
# 方法一
# class Foo:
# def __init__(self):
# self.l = []
#
# def put(self, item):
# self.l.append(item)
#
#
# class Queue(Foo):
# def get(self):
# return self.l.pop(0)
#
#
# class Stack(Foo):
# def get(self):
# return self.l.pop()
# 方法二:
# class Foo:
# def __init__(self):
# self.l = []
#
# def put(self,item):
# self.l.append(item)
#
# def get(self):
# return self.l.pop() if self.index else self.l.pop(0)
#
# class Queue(Foo):
# def __init__(self):
# self.index = 0
# Foo.__init__(self)
#
# class Stack(Foo):
# def __init__(self):
# self.index = 1
# Foo.__init__(self)
# 方法三
class Foo:
def __init__(self):
self.l = []
def put(self, item):
self.l.append(item)
def get(self):
return self.l.pop()
class Queue(Foo):
def get(self):
return self.l.pop(0)
class Stack(Foo): pass
class Mypickle:
pass
import pickle
class Mypickle:
def __init__(self, path):
self.file = path
def dump(self, obj):
with open(self.file, 'ab') as f:
pickle.dump(obj, f)
def load(self):
with open(self.file, 'rb') as f:
while True:
try:
yield pickle.load(f)
except EOFError:
break
def run():
pass
# def load(self):
# l = []
# with open(self.file,'rb') as f:
# while True:
# try:
# l.append(pickle.load(f))
# except EOFError:
# break
# return l
# pic = Mypickle('pickle_file')
# s1 = Stack()
# s1.put('aaa')
# s1.put(123)
# s1.put(456)
# pic.dump(s1)
# s2 = Stack()
# s2.put('aaa')
# s2.put(123)
# s2.put(456)
# pic.dump(s2)
# for i in pic.load():
# print(i.l)