Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2023-24 loggatevi e attivatelo nella vostra pagina dei corsi preferiti. A quel punto il corso appare nel menù personale cliccando sul proprio avatar. Per i materiali degli anni precedenti seguite lo stesso metodo.

To join the Programming/Lab 2023-24 course, log-on and select it on the my courses page. It will appear on the personal menu of your avatar. For earlier years use the same method.

hw 3 es 2 metodo cancella() come capire quale istanza di Skyline ha chiamato l'istanza di Rettangolo

G
GianlucaValla (740 points)
1 4 9
in Info sul corso e sugli esami by (740 points)
Buongiorno, leggendo in giro sul forum noto che questo problema è già stato affrontato in svariate discussioni, ma purtroppo non trovo la risposta alla mia domanda. Mi è perfettamente chiaro che devo creare un attributo dentro il costruttore di rettangolo che sia una qualche sequenza; in questa sequenza andrò ad aggiungere ogni istanza di Skyline nella quale viene aggiunta l'istanza di Rettangolo, così che poi possa iterarla comodamente durante la funzione cancella(). Mi sfugge però come fare a capire quale istanza di Skyline richiama il l'istanza di Rettangolo: esiste un particolare metodo in grado di registrare l'indirizzo di una particolare istanza nel momento in cui questa ne chiama un'altra? O esistono vie più banali che purtroppo mi sfuggono?
211 views
closed

1 Answer

Best answer
_andrea_ (45670 points)
13 42 297
by (45.7k points)
selected by
devi avere nel Rettangolo una lista che tiene dentro tutti gli Skyline a cui quel rettangolo viene aggiunto. per farlo puoi accedere all'attributo del rettangolo ogni volta che quel rettangolo viene aggiunto a uno Skyline e usare il metodo append delle liste per aggiungere quello Skyline a quel Rettangolo. per ottenere l'indirizzo dello Skyline che esegue queste operazioni, basta usare il self, cioè dentro qualsiasi metodo di qualsiasi classe, basta usare self che rappresenta quello stesso oggetto. in questo caso quando aggiungi un rettangolo a uno skyline ti basta usare append sulla lista del rettangolo e metterci dentro self, che sarebbe lo skyline che usi in quel momento
G
GianlucaValla (740 points)
1 4 9
by (740 points)

Ciao Andrea, ti ringrazio molto, sei stato davvero chiaro e gentile. Sono stato stupido a non pensarci, effettivamente mi basta richiamare la lista del costruttore di Rettangolo dalla funzione presente in Skyline mentre aggiungo l'istanza di Rettangolo... 
Grazie ancora, ero veramente disperato sad