"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > पायथन के \'__enter__\' और \'__exit__\' तरीकों के भीतर क्या जादू होता है?

पायथन के \'__enter__\' और \'__exit__\' तरीकों के भीतर क्या जादू होता है?

2024-11-03 को प्रकाशित
ब्राउज़ करें:552

What Magic Occurs within Python\'s \'__enter__\' and \'__exit__\' Methods?

पायथन के '__enter__' और '__exit__' को समझना

कोड का एक दिलचस्प स्निपेट सामने आया है:

def __enter__(self):
    return self

def __exit__(self, type, value, tb):
    self.stream.close()

इन पंक्तियों के भीतर कौन सा रहस्यमय जादू छिपा है?

'with' कथन दर्ज करें

पायथन का '__enter__' और '__exit__' जादुई तरीके हैं जो वस्तुओं को 'साथ' कथन के साथ सहजता से एकीकृत करने के लिए सशक्त बनाते हैं। यह कथन "क्लीनअप" क्रियाओं की आवश्यकता वाले कोड को सरल बनाता है, काफी हद तक 'ट्राई-फाइनली' ब्लॉक की तरह। ऑब्जेक्ट जो एक विशिष्ट निष्पादन संदर्भ में संसाधनों का प्रबंधन करते हैं। संदर्भ को 'with' कथन द्वारा परिभाषित किया गया है, और जब वह संदर्भ समाप्त हो जाता है, तो किसी भी आवश्यक सफाई कार्रवाई को करने के लिए '__exit__' विधि स्वचालित रूप से कॉल की जाती है।

वास्तविक दुनिया उदाहरण: डेटाबेस कनेक्शन प्रबंधन

एक उत्कृष्ट उदाहरण जहां '__enter__' और '__exit__' डेटाबेस कनेक्शन प्रबंधित कर रहे हैं:

class DatabaseConnection(object): def __प्रवेश__(स्वयं): # डेटाबेस कनेक्शन स्थापित करें और इसे वापस लौटाएँ ... self.dbconn लौटाएँ def __exit__(स्वयं, exc_type, exc_val, exc_tb): # डेटाबेस कनेक्शन बंद करें self.dbconn.close() ...

इस ऑब्जेक्ट को 'विथ' स्टेटमेंट के साथ उपयोग करने से यह सुनिश्चित होता है कि संदर्भ समाप्त होने के बाद डेटाबेस कनेक्शन स्वचालित रूप से बंद हो जाता है:

class DatabaseConnection(object):

    def __enter__(self):
        # Establish database connection and return it
        ...
        return self.dbconn

    def __exit__(self, exc_type, exc_val, exc_tb):
        # Close the database connection
        self.dbconn.close()
        ...

निष्कर्ष

with DatabaseConnection() as mydbconn:
    # Perform database operations
विज्ञप्ति वक्तव्य यह आलेख यहां पुनर्मुद्रित है: 1729245137 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.कॉम से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3