<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2013/12/11 Giovanni Porcari <span dir="ltr"><<a href="mailto:giovanni.porcari@softwell.it" target="_blank">giovanni.porcari@softwell.it</a>></span><br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class="im"><br>
<br>
</div><div class="im">def gen(n):<br>
i = 1<br>
while i < n:<br>
yield i<br>
i += 1<br>
<br>
</div>class Enumerated(object):<br>
<br>
def __init__(self, gen):<br>
self.gen = gen<br>
self._counter=0<br>
<br>
def count(self):<br>
return self._counter<br>
<br>
def __iter__(self):<br>
for k in self.gen:<br>
self._counter += 1<br>
yield(k)<br>
<br>
def __getattr__(self,name):<br>
return self.gen.__getattribute__(name)<br>
<br>
<br>
<br>
if __name__=='__main__':<br>
x=Enumerated(gen(100000))<br>
print sum(x)/x.count()<br>
<br>
Non so se ha senso e se assomiglia a quello che volevi<br>
comunque anche questa potrebbe essere un' alternativa.<br></blockquote><div><br></div><div>Mi piace molto. Ho solo una domanda: perche' serve __getattr__ e perche' ribalta la chiamata su __getattribute__ del generatore?</div>
<div><br></div><div><div>Ciao,</div><div>Giuliano</div><div><br></div></div></div><div><br></div>-- <br>Piergiuliano Bossi<br>Blog: <a href="http://thinkingbox.wordpress.com/" target="_blank">http://thinkingbox.wordpress.com/</a><br>
Twitter: <a href="http://twitter.com/thinkingbox" target="_blank">http://twitter.com/thinkingbox</a> (English)<br>Twitter: <a href="http://twitter.com/scatolapensante" target="_blank">http://twitter.com/scatolapensante</a> (Italiano)<br>
<div>Google+: <a href="https://plus.google.com/u/0/108187981162465525118" target="_blank">https://plus.google.com/u/0/108187981162465525118</a></div>
</div></div>