Esto puede ser una pregunta estúpida, pero lo preguntaré de todos modos. Tengo un generador objeto:Objetos de generador de Python: __sizeof __()
>>> def gen():
... for i in range(10):
... yield i
...
>>> obj=gen()
que puede medir su tamaño:
>>> obj.__sizeof__()
24
Se dice que los generadores consiguen consumidos:
>>> for i in obj:
... print i
...
0
1
2
3
4
5
6
7
8
9
>>> obj.__sizeof__()
24
... pero obj.__sizeof__()
sigue siendo el mismo.
Con cuerdas que funciona como esperaba:
>>> 'longstring'.__sizeof__()
34
>>> 'str'.__sizeof__()
27
Estaría agradecido si alguien podría iluminar.
Usted también puede estar interesado en [ 'sys.getsizeof()'] (http://docs.python.org/library/sys.html#sys.getsizeof) También considera la sobrecarga de gc (si eso te importa), y es un poco menos hackish. – mhawke
@mhawke: ¡en realidad, el OP ni siquiera estaba interesado en '__sizeof__'! :) –
@NedBatchelder: ¡sí, tienes razón! – mhawke