Il giorno 11/dic/2013, alle ore 16:45, Marco Beri <marcob...@gmail.com> ha scritto:
> On Wed, Dec 11, 2013 at 4:31 PM, Piergiuliano Bossi <pgbo...@gmail.com> wrote: > Mi piace molto. Ho solo una domanda: perche' serve __getattr__ e perche' > ribalta la chiamata su __getattribute__ del generatore? > > > avg1 2.72754812241 > avg2 2.58321499825 > avg3 6.11401891708 > avg4 2.8605260849 > avg5 4.49426484108 > > La (bella) versione di Giovanni è però un po' inefficiente. > class Enumerated(object): def __init__(self, gen): self.gen = enumerate(gen) self._counter=0 def count(self): return self._counter+1 def __iter__(self): for k in self.gen: self._counter, k = k yield(k) def __getattr__(self,name): return self.gen.__getattribute__(name) Con questa versione di Enumerated i tempi migliorano un po: avg1 3.31683301926 avg2 2.97292208672 avg3 5.03367805481 avg4 1.97484779358 avg5 3.58412313461 Ciao G _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python