Это может быть глупый вопрос, но я все равно спрошу. У меня есть объект-генератор:
>>> def gen():
... for i in range(10):
... yield i
...
>>> obj=gen()
Я могу измерить его размер:
>>> obj.__sizeof__()
24
Говорят, что генераторы потребляются:
>>> for i in obj:
... print i
...
0
1
2
3
4
5
6
7
8
9
>>> obj.__sizeof__()
24
... но obj.__sizeof__()
остается неизменным.
С помощью строк он работает так, как я ожидал:
>>> 'longstring'.__sizeof__()
34
>>> 'str'.__sizeof__()
27
Я был бы признателен, если бы кто-нибудь мог просветить меня.