@classmethod
def load(cls, filename):
img=images.load(filename)
w=len(img[0])
h=len(img)
nuova=cls(w,h)
nuova.img=[[Colore(*pixel) for pixel in line ] for line in img]
return nuova
Innanzitutto, mi scusi se non ho allegato un'immagine e bensì ho dovuto riscrivere, ma è perché non sono riuscito ad allegarla
Ora, il problema è che non capisco tutti i passaggi di questa funzione, elenco i passaggi.
-se il prof. non avesse aggiunto il decoratore classmethod, l'esecuzione avrebbe dato un errore, perchè una classe non è autorizzata "creare" altre istanze? (posso chiamare le istanze oggetti, o commetto un'eresia se lo faccio?)
-perchè usiamo questo metodo? non basta usare direttamente img? perchè risalviamo tutto il necessario in una nuova istanza e non usiamo direttamente img? Semmai fosse perchè modificherei il file originale, non basterebbe fare deepcopy allora?
-nella riga "nuova=cls(w,h)" che cosa succede di preciso? che cosa esegue di preciso questa istruzione?
-perchè nuova.img? significa che quello che fa il ciclo viene memorizzato nella lista img, che appartiene a nuova?