这可能是一个愚蠢的问题,但无论如何我都会问.我有一个生成器对象:
>>> def gen():
... for i in range(10):
... yield i
...
>>> obj=gen()
Run Code Online (Sandbox Code Playgroud)
我可以测量它的大小:
>>> obj.__sizeof__()
24
Run Code Online (Sandbox Code Playgroud)
据说发电机被消耗掉了:
>>> for i in obj:
... print i
...
0
1
2
3
4
5
6
7
8
9
>>> obj.__sizeof__()
24
Run Code Online (Sandbox Code Playgroud)
......但obj.__sizeof__()仍然是一样的.
使用字符串它按预期工作:
>>> 'longstring'.__sizeof__()
34
>>> 'str'.__sizeof__()
27
Run Code Online (Sandbox Code Playgroud)
如果有人能够启发我,我将感激不尽.