
class Queue:
    def __init__(self, *objects):
        self.queue = []
        if len(objects) > 0:
            for obj in objects:
                self.queue.append(obj)
    
    def pop_front(self):
        self.queue = self.queue[1:]
    
    def append_back(self, *objects):
        for obj in objects:
            self.queue.append(obj)
        
    def front(self):
        if self.queue != []:
            return self.queue[0]
            
    def last(self):
        if self.queue != []:
            return self.queue[len(self.queue) - 1]
            
    def dimension(self):
        return len(self.queue)
        
    def clear(self):
        self.queue.clear()
    
    def isempty(self):
        return self.queue == []
        
    def __str__(self):
        return self.queue.__str__()
        
    def __repr__(self):
        return self.queue.__repr__()
        
    def __eq__(self, Queue_instance: Queue):
        return self.queue == Queue_instance.queue
        
# usage
if __name__ == '__main__':
    q = Queue(2, 3, 4, 5, 5, 6)
    print(q)
    
    q.pop_front()
    print(q)
    
    q.append_back()