यह एक बेवकूफ सवाल हो सकता है लेकिन मैं वैसे भी पूछूंगा।पायथन जनरेटर ऑब्जेक्ट्स: __sizeof __()
>>> obj.__sizeof__()
24
कहा जाता है कि जनरेटर भस्म हो: यह आकार है
>>> 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__()
एक ही रहता है मैं एक जनरेटर वस्तु है।
तार के साथ यह काम करता है के रूप में मैं उम्मीद:
>>> 'longstring'.__sizeof__()
34
>>> 'str'.__sizeof__()
27
मैं आभारी हो सकता है अगर किसी ने मुझे प्रबुद्ध सकता है।
आप [ 'sys.getsizeof()'] (http://docs.python.org/library/sys.html#sys.getsizeof में रुचि हो सकती है: उदाहरण के
listiterator
के लिए एक इसी__length_hint__
विधि है)। यह जीसी ओवरहेड भी मानता है (यदि यह आपके लिए मायने रखता है), और यह थोड़ा कम हैकिश है। – mhawke@mhawke: असल में, ओपी को '__sizeof__' में भी रूचि नहीं थी! :) –
@NedBatchelder: हाँ, तुम सही हो! – mhawke