Grab an object from the pool. If the pool is empty, a new object will be generated and returned.

def request_object(self):
        """Grab an object from the pool. If the pool is empty, a new object will be generated and returned."""
        obj_to_return = None
        if self.queue.count > 0:
            obj_to_return = self.__dequeue()
        else:
            #The queue is empty, generate a new item.
            self.__init_object()
            object_to_return = self.__dequeue()
        self.active_objects += 1
        return obj_to_return