class MyFifo():
def __init__(self, content=[]):
if isinstance(content, (tuple, list, str)):
self.content = [i for i in content]
else:
self.content = []
def __repr__(self):
return str(self.content)
def __add__(self, fifo):
# return MyFifo(self.content[:] + fifo.content[:])
return MyFifo(self.content + fifo.content)
def put_in(self, item):
self.content.append(item)
def take_out(self):
if len(self.content) > 0:
return self.content.pop(0)
def interactive(self):
while True:
k = input("> ")
if k == "":
break
if k != "?":
self.put_in(k)
print(self.__repr__())
else:
out = self.take_out()
if out:
print(out)
else:
print('The Queue is empty.')
# def main():
print('Selftest for Class MyFifo:')
f0 = MyFifo(1)
print(f0)
# f1 = MyFifo((1, 2, 3))
# f1 = MyFifo('123')
f1 = MyFifo([1, 2, 3])
f2 = MyFifo((3, 4, 5))
print(f1, f2)
f3 = f1 + f2
print(f3)
print(f3.take_out())
print(f1, f2, f3)
f3.interactive()
# if __name__ == '__main__':
# main()