Problema con el paso de funciones como parámetro en un actor

Tengo el siguiente código para un actor semáforo

class Semaforo(pilas.actores.Actor):
    
    luz = 1
    
    def luz_avanzar(self):
        global luz
        if luz == 3:
            luz = 0
        luz += 1
    
    def cambiar_semaforo(self):
        self.imagen.avanzar()
        self.luz_avanzar()
        
        
    def __init__(self):
        global cambiar_semaforo
        pilas.actores.Actor.__init__(self)
        self.imagen = pilas.imagenes.cargar_grilla("semafro.png",3)
        pilas.mundo.agregar_tarea_siempre(3, cambiar_semaforo)    

El error que me da es


Traceback (most recent call last):
  File "/home/pepo/workspace/pilas/vial.py", line 41, in <module>
    semaforo = Semaforo()
  File "/home/pepo/workspace/pilas/vial.py", line 26, in __init__
    pilas.mundo.agregar_tarea_siempre(3, cambiar_semaforo)		
NameError: global name 'cambiar_semaforo' is not defined

Como tengo que definir la función para poder usarla ? en el agregar_tarea_siempre como en este caso.

De antemano gracias !!!

Quita:

global cambiar_semaforo

y

Llama al método de esta manera: self.cambiar_semaforo

pilas.mundo.agregar_tarea_siempre(3, self.cambiar_semaforo)