__slots__
स्मृति उपयोग का एक छोटा सा अनुकूलन प्रदान करता है करने के लिए वर्ग घोषणा बदलें। यह उपयोगी हो सकता है यदि आपके पास बहुत बड़ी संख्या है।
जिस प्रतिबंध के बारे में आप बात कर रहे हैं वह ज्यादातर लागू होने के तरीके का आकस्मिक साइड इफेक्ट है। विशेष रूप से यह केवल __dict__
के निर्माण को रोकता है यदि आपकी कक्षा को बेस क्लास से प्राप्त होता है जिसमें __dict__
(जैसे object
) नहीं है और फिर भी यह __dict__
को किसी भी उप-वर्ग में आवंटित नहीं किया जाएगा जब तक कि वे __slots__
को परिभाषित न करें। यह एक सुरक्षा तंत्र के रूप में नहीं है, इसलिए इसका उपयोग करने की कोशिश नहीं करना सबसे अच्छा है।
सभी पुरानी शैली के वर्ग स्वचालित रूप से __dict__
प्राप्त करते हैं, इसलिए __slots__
का कोई प्रभाव नहीं पड़ता है। यदि आप object
से प्राप्त होते हैं तो आपको वह प्रभाव मिलेगा जो आप खोज रहे हैं, लेकिन मूल रूप से __slots__
से परेशान न हों जब तक आपको पता न हो कि आपके पास लाखों उदाहरण हैं और स्मृति एक समस्या है।
बढ़िया काम करता है! धन्यवाद! –