これは愚かな質問かもしれませんが、とにかく質問します。私はジェネレータオブジェクトを持っている:Pythonジェネレータオブジェクト:__sizeof __()
>>> def gen():
... for i in range(10):
... yield i
...
>>> obj=gen()
私はそれがサイズだ測ることができます。
>>> for i in obj:
... print i
...
0
1
2
3
4
5
6
7
8
9
>>> obj.__sizeof__()
24
...しかしobj.__sizeof__()
は同じまま:
>>> obj.__sizeof__()
24
発電機が消費されます。と言われています。
>>> 'longstring'.__sizeof__()
34
>>> 'str'.__sizeof__()
27
誰かが私を啓発することができれば、私は感謝するだろう:それは私が期待どおりに動作文字列で
。
ます。また、[ 'sys.getsizeof()'](http://docs.python.org/library/sys.html#sys.getsizeofに興味があるかもしれません:たとえば
listiterator
について対応__length_hint__
方法があります)。それはまたgcのオーバーヘッドを考慮します(それはあなたにとって重要です)。 – mhawke@mhawke:実際には、OPは '__sizeof__'にも興味がありませんでした! :) –
@NedBatchelder:はい、そうです! – mhawke