डेटा एक्सेस मैनेज करना: निजी attributes

Python में ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग

Alex Yarosh

Content Quality Analyst @ DataCamp

सभी class डेटा public है

हम सब यहाँ एडल्ट हैं

Python में ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग

एक्सेस सीमित करना

  • नेमिंग कन्वेंशन्स
  • एक्सेस कस्टमाइज़ करने के लिए @property का उपयोग करें
  • __getattr__() और __setattr__() ओवरराइड करना
Python में ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग

नेमिंग कन्वेंशन: internal attributes

obj._att_name, obj._method_name()

  • एक सिंगल _ से शुरू होता है → "internal"
  • public API का हिस्सा नहीं
  • class यूज़र के रूप में: "इसे न छुएँ"
  • class डेवलपर के रूप में: implementation details, helper functions के लिए उपयोग करें..

df._is_mixed_type , datetime._ymd2ord()

Python में ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग

नेमिंग कन्वेंशन: pseudoprivate attributes

obj.__attr_name , obj.__method_name()

  • __ से शुरू होता है पर अंत __ से नहीं होता → "private"
  • inherited नहीं होता
  • नेम मैंगलिंग: obj.__attr_name को obj._MyClass__attr_name के रूप में इंटरप्रेट किया जाता है
  • inherited classes में name clashes रोकने के लिए उपयोग होता है

 

Leading और trailing __ सिर्फ built-in Python methods (__init__(),__repr__()) के लिए उपयोग होते हैं!

Python में ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग

अभ्यास करते हैं!

Python में ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग

Preparing Video For Download...