Cookbook: http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/498249 Ciauz.
2008/2/25, Pietro Battiston <[EMAIL PROTECTED]>: > 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 > _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python