Salve a tutti, supponiamo (è la semplificazione di un problema che ho davvero) che io abbia una classe A:
class A(): def metodo1(self): .... def metodo2(self): .... .... Il mio programma usa questa classe e deve potere gestire indifferentemente un singolo elemento o collezioni di elementi di questa classe (fintanto che non ne deve ricevere alcun input, deve poterlo fare trasparentemente senza domandarsi se è un elemento o è una lista di elementi). Il modo banale di risolvere il problema sarebbe far sì che il mio programma in realtà maneggi solo liste (eventualmente con un solo elemento). Ma in realtà il mio programma l'ho già scritto e non mi va di cambiarlo, ma soprattutto di complicarlo. Allora ho pensato di creare la seguente classe: class listadiA(list): def metodo1(self, parametri): for i in self: self[i].metodo1(parametri) def metodo2(self, parametri): for i in self: self[i].metodo2(parametri) .... (almeno per tutti i metodi che non ritornano alcun valore, poi gli altri li "sovrascrivo" in modo meno banale) Mi domando però se c'è un modo più furbo di scrivere una roba del genere, per sprecare meno codice ma soprattutto per non doverlo aggiornare se cambio/aggiungo metodi della classe originale... Con "dir" io riesco ad avere tutti i metodi di "A", ma una volta che ho un metodo non so come aggiungere il suo "metodo derivato" al dizionario dei metodi di "listadiA". In pratica avrei bisogno di modificare il dizionario dei metodi di listadiA come fosse un qualsiasi dizionario. C'è un modo per farlo o è pura follia? grazie Pietro _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python