Saturday 15 January 2011

Is close() necessary when using iterator on a Python file object -


इस सवाल का पहले से ही एक उत्तर है: < / P>

  • 5 जवाब

क्या यह करने के लिए बुरा व्यवहार है निम्न और नहीं स्पष्ट रूप से एक फ़ाइल ऑब्जेक्ट को संभालता है और इसके close () विधि को कॉल करें?

  पंक्ति में खोलने के लिए ('hello.txt '): प्रिंट लाइन  

एनबी - यह अजगर के संस्करणों के लिए है जो अभी तक के साथ कथन नहीं है।

मैं पूछता हूं पायथन प्रलेखन इस की अनुशंसा करते हैं: -

  f = open ("hello.txt") कोशिश: लाइन में f: प्रिंट लाइन अंत में: f.close ()  < / Pre> 

जो आवश्यक है उससे अधिक शब्दशः लगता है।

बंद हमेशा आवश्यक फाइलों के साथ काम करते समय, खुली फाइल को छोड़ने का यह एक अच्छा विचार नहीं है कि वह सभी जगहों पर हैंडल करता है। फाइल ऑब्जेक्ट को कचरा एकत्रित करने पर वे बंद हो जाएंगे, लेकिन आपको नहीं पता कि यह कब होगा और जब आप सिस्टम संसाधनों को बर्बाद कर रहे हैं, तो आपको हैंडल्स फ़ाइल की आवश्यकता नहीं रह जाएगी।

यदि आप Python 2.5 और उच्च का उपयोग कर रहे हैं close () आप के लिए स्वतः के साथ कथन का उपयोग कर सकते हैं:

  से __future__ आयात with_statement # केवल ओपन ("हैलो.txt") के साथ पायथन 2.5 में आवश्यक है f: लाइन में f: प्रिंट लाइन  

इसका आपके पास कोड के समान प्रभाव है:

  f = open ("hello.txt") कोशिश: लाइन में f: प्रिंट लाइन अंत में: f.close ()  

साथ कथन सामान्यतः C ++ में उपयोग किए गए मुहावरे के लिए प्रत्यक्ष भाषा समर्थन है यह सभी प्रकार के संसाधनों का सुरक्षित उपयोग और साफ करने की अनुमति देता है, उदाहरण के लिए यह हमेशा यह सुनिश्चित करने के लिए उपयोग किया जा सकता है कि डेटाबेस कनेक्शंस बंद हैं या लॉक हमेशा नीचे की तरह जारी किए जाते हैं।

  mylock = threading लॉक () mylock के साथ: पास # कुछ धागे सुरक्षित सामान  

No comments:

Post a Comment