I'm trying to delete an object (in this case, and instance of a Fruit class) when it intersects with the head of my snake. The problem is that when it detects a fruit object, del doesn't appear to do anything. I don't know if I'm not implementing the delete function correctly, or it may be something to do with how I am feeding the objects to the function.
Here's part of the main.py script that deals the game functionality:
    # Main loop
    while running:
        # event handling, gets all event from the event queue
        for event in pygame.event.get():
            # only do something if the event is of type QUIT
            if event.type == pygame.QUIT:
                # change the value to False, to exit the main loop
                running = False
        # Modify game fruit properties
        if fruit_tick < 50:
            fruit_tick += 1
        else:
            game.spawn_fruit()
            fruit_tick = 0
        # Modify game player properties
        if not game.player_python:
            game.spawn_player()
        else:
            game.player_python.move()
            game.player_python.detect_object(game.get_objects())
        # Modify display properties
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
        game.draw_shapes()
        pygame.display.flip()
Here's the function that is being executed when the head is at the same position of a Fruit object:
    # Detect object
    def detect_object(self, objects):
        for obj in objects:
            if obj.pivot == self.location:
                if isinstance(obj, Fruit):
                    self.grow(obj.get_growth())
                    del obj
If I add a print() statement under if isinstance(obj, Fruit):, it executes no problem. The problem is that del obj does nothing.
 
    