कुछ कोड:क्या मुझे StringIO.close() करना है?
import cStringIO
def f():
buffer = cStringIO.StringIO()
buffer.write('something')
return buffer.getvalue()
documentation का कहना है:
StringIO.close()
: स्मृति बफर मुफ्त। एक बंद StringIO ऑब्जेक्ट के साथ संचालन करने का प्रयास करने से ValueError बढ़ेगा।
क्या मुझे buffer.close()
करना है, या जब यह बफर गुंजाइश से बाहर हो जाता है और कचरा इकट्ठा होता है तो यह स्वचालित रूप से हो जाएगा?
अद्यतन:
मैं एक परीक्षण किया:
import StringIO, weakref
def handler(ref):
print 'Buffer died!'
def f():
buffer = StringIO.StringIO()
ref = weakref.ref(buffer, handler)
buffer.write('something')
return buffer.getvalue()
print 'before f()'
f()
print 'after f()'
परिणाम:
[email protected]:~/projects$ python test.py
before f()
Buffer died!
after f()
[email protected]:~/projects$
क्यों न केवल एक नग्न f() के बजाय f() मुद्रित करें? – mpag