Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

Python में डिस्ट्रक्टर मेथड __del__() कैसे काम करता है?

__del__() मेथड को डिस्ट्रक्टर मेथड के रूप में जाना जाता है। यह तब कॉल किया जाता है जब कोई ऑब्जेक्ट गार्बेज कलेक्ट होता है जो ऑब्जेक्ट के सभी रेफरेंस डिलीट होने के बाद होता है।

एक साधारण मामले में यह किसी वेरिएबल को डिलीट करने के तुरंत बाद हो सकता है जैसे del x या, यदि x एक लोकल वेरिएबल है, तो फंक्शन समाप्त होने के बाद। विशेष रूप से, जब तक सर्कुलर रेफरेंस न हों, CPython जो स्टैंडर्ड Python इम्प्लीमेंटेशन है, तुरंत गार्बेज कलेक्ट करेगा।

Python गार्बेज कलेक्शन की एकमात्र प्रॉपर्टी यह है कि यह सभी रेफरेंस डिलीट होने के बाद होता है, इसलिए यह आवश्यक रूप से तुरंत बाद नहीं हो सकता और यहां तक कि बिल्कुल भी नहीं हो सकता।

यहां तक कि, वेरिएबल कई कारणों से लंबे समय तक जीवित रह सकते हैं, उदाहरण के लिए, एक प्रोपेगेटिंग एक्सेप्शन या मॉड्यूल इंट्रोस्पेक्शन वेरिएबल रेफरेंस काउंट को 0 से अधिक रख सकता है। साथ ही, वेरिएबल सर्कुलर रेफरेंस का हिस्सा हो सकता है - गार्बेज कलेक्शन चालू होने पर CPython अधिकांश, लेकिन सभी नहीं, ऐसे साइकिल को तोड़ता है, और फिर भी केवल समय-समय पर।

__del__ के वैध उपयोग के मामले हैं: उदाहरण के लिए, यदि कोई ऑब्जेक्ट X, Y को रेफरेंस करता है और ग्लोबल कैश में Y रेफरेंस की एक कॉपी भी रखता है (cache['X -> Y'] = Y) तो X.__del__ का कैश एंट्री को भी डिलीट करना विनम्र होगा।

यदि आप जानते हैं कि डिस्ट्रक्टर आवश्यक क्लीनअप प्रदान करता है, तो आप इसे सीधे कॉल करना चाह सकते हैं, x.__del__()।

  1. - पायथन में [\d+] रेगुलर एक्सप्रेशन कैसे काम करता है?

    निम्नलिखित कोड दर्शाता है कि दिए गए स्ट्रिंग पर रेगुलर एक्सप्रेशन [\d+] क्या करता है: [\d+] रेगुलर एक्सप्रेशन एक अंक (0-9) या + कैरेक्टर को संदर्भित करता है। उदाहरण import re result = re.findall(r[\d+], Taran123tula+456) print(result) आउटपुट [1, 2, 3, +, 4, 5, 6]

  1. - पायथन फ़ाइलों में अंडरस्कोर _ कैसे काम करता है?

    अंडरस्कोर (_) पायथन में विशेष है। पायथन में अंडरस्कोर का उपयोग करने के 5 मुख्य मामले हैं। 1. इंटरप्रेटर में अंतिम एक्सप्रेशन का मान स्टोर करना पायथन इंटरप्रेटर अंतिम एक्सप्रेशन के मान को _ नामक विशेष वेरिएबल में स्टोर करता है। >>> 12 + 10 22 >>> _ 22 2. विशिष्ट मानों को अनदेखा करन

  1. - पायथन में mkdir -p कैसे काम करता है?

    mkdir -p का उपयोग पैरेंट के मौजूद होने पर भी रिकर्सिव डायरेक्टरी बनाने की अनुमति देने के लिए किया जाता है। रिकर्सिवली डायरेक्टरी बनाने के लिए, उस पथ को प्रदान करें जिसे आप os.makedirs(path) में बनाना चाहते हैं। रिकर्सिवली डायरेक्टरी बनाने के लिए, आपको मौजूदा फ़ोल्डर्स को अनुमति देने के लिए exist_ok