[Python] media di un generatore

Piergiuliano Bossi pgbossi a gmail.com
Mer 11 Dic 2013 16:31:29 CET


2013/12/11 Giovanni Porcari <giovanni.porcari a softwell.it>

>
>
> def gen(n):
>     i = 1
>     while i < n:
>         yield i
>         i += 1
>
> class Enumerated(object):
>
>     def __init__(self, gen):
>         self.gen = gen
>         self._counter=0
>
>     def count(self):
>         return self._counter
>
>     def __iter__(self):
>         for k in self.gen:
>             self._counter += 1
>             yield(k)
>
>     def __getattr__(self,name):
>         return self.gen.__getattribute__(name)
>
>
>
> if __name__=='__main__':
>     x=Enumerated(gen(100000))
>     print sum(x)/x.count()
>
> Non so se ha senso e se assomiglia a quello che volevi
> comunque anche questa potrebbe essere un' alternativa.
>

Mi piace molto. Ho solo una domanda: perche' serve __getattr__ e perche'
ribalta la chiamata su __getattribute__ del generatore?

Ciao,
Giuliano


-- 
Piergiuliano Bossi
Blog: http://thinkingbox.wordpress.com/
Twitter: http://twitter.com/thinkingbox (English)
Twitter: http://twitter.com/scatolapensante (Italiano)
Google+: https://plus.google.com/u/0/108187981162465525118
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20131211/30b6a5c2/attachment.html>


Maggiori informazioni sulla lista Python