假设我有一个队列,每个元素代表一个正在等待其订单完成的客户。如果更多的客户堆积起来,我将如何实现python time模块来增加等待时间,如果已经为客户提供服务,则如何减少等待时间。
import time
class Queue:
#Constructor creates a list
def __init__(self):
self.queue = list()
self.start_time = 0
self.start_time2 = 0
#Adding elements to queue
def enqueue(self,data):
#Checking to avoid duplicate entry (not mandatory)
if data not in self.queue:
self.queue.insert(0,data)
if self.start_time != 0:
self.start_time2 = time.time()
self.start_time += self.start_time2
self.start_time = time.time()
return True
return False
#Removing the last element from the queue
def dequeue(self):
if len(self.queue)>0:
#calculate time between ordering and serving:
elapsed_time = time.time() - self.start_time
print('Order took',elapsed_time)
#decrease current waiting time
self.start_time = self.start_time - elapsed_time
print('Current waiting time is',self.start_time)
return self.queue.pop()
return ("Queue Empty!")
#Getting the size of the queue
def size(self):
return len(self.queue)
#printing the elements of the queue
def printQueue(self):
return self.queue
def time(self):
start_time = time.time()
elapsed_time = time.time() - start_time
time.strftime("%H:%M:%S",time.gmtime(elapsed_time))
customerQueue = Queue()
customerQueue.enqueue('Test1')
customerQueue.enqueue('Test2')
customerQueue.enqueue('Test3')
print(customerQueue.queue)
customerQueue.dequeue()
print(customerQueue.queue)