¿Puedes cambiar los atributos de un objeto de Python Canvas después de la creación?

Estoy tratando de simular un semáforo americano, con 3 círculos en un rectángulo, todos dibujados en un lienzo de conjunto. Se supone que la simulación debe reflejar la "animación" cambiando la luz que se muestra cada 2 segundos en el siguiente orden: verde> amarillo> rojo> verde, etc. para siempre.

La única forma en que puedo pensar hacer esto es mediante el uso de un patrón canvas.move (), canvas.after (), canvas.update () para mover un objeto ovalado relleno para superponer un círculo sin rellenar a la vez. He bajado la lógica para mover un círculo a la velocidad adecuada y en el orden correcto. La cosa es que, solo instalo un círculo lleno de "verde", pero no puedo cambiarlo para que sea "amarillo" o "rojo" usando este método. Parece tonto tener que canvas.delete ("relleno") y volver a dibujarlo en un lugar nuevo con un relleno diferente cada 2 segundos, porque eso es mucho para un programa tan simple.

Pregunta 1: ¿Hay alguna manera de que pueda alterar lafill ¿Opción para mi objeto Canvas lleno a voluntad, usando algún método u otro medio?

Pregunta 2: ¿Me estoy acercando a este escenario incorrectamente? ¿Hay una mejor manera de simular esto?

Respuestas a la pregunta(1)

Su respuesta a la pregunta