Dato che questa è una domanda piuttosto ampia, proverei a rispondere in un contesto generale e poi con l'esempio del cerchio che hai menzionato
Spiegazione generale
Se crei più istanze della tua classe e vuoi che le istanze comunichino tra loro, il loro ciclo come collezione sarebbe l'ideale, come sottolineato da Peter Torok. Leggi la documentazione della lingua per implementarla in quanto potrebbe variare in tutte le lingue. Questo è OK nel caso in cui tutte le istanze vengano chiamate da un singolo programma o siano eseguite in totale. Non è consigliabile memorizzare i dati all'interno delle classi come variabili statiche in quanto ciò renderebbe la classe piuttosto rigida da modificare in futuro.
Ma nel caso in cui desideri creare più istanze della tua classe e più raccolte delle istanze della tua classe, allora diventerebbe complicato dato che hai bisogno di scambiare informazioni tra le classi e se le classi sono statefule, allora ci vorrebbe del vero lavoro
Esempio di cerchie
In questo caso, puoi avvolgere la tua classe con un'altra classe che disegnerebbe un numero specificato di cerchi e un'azione di clic (presupponendo componenti generali della GUI) che ridisegnerebbe le cerchie.
class CircleWrapper(number):
constructor creates the required number of circles by calling the circle class with draw method
click event that calls the recolor method on each of the circles
class circle ():
draw
recolor
CircleWrapper (10) crea 10 cerchi. Facendo clic sulla GUI si richiama il metodo recolor. I metodi wrapper non vengono forniti in dettaglio nell'esempio sopra. Sebbene ciò implichi una chiamata in più, è più semplice estendere il modello e aggiungere modifiche e convalide in fase di esecuzione.