आंतरिक एट्रिब्यूट्स का उपयोग
इस अभ्यास में, आप अध्याय 2 की BetterDate क्लास पर वापस आएँगे.
आप एक ऐसा मेथड जोड़ने का निर्णय लेते हैं जो तारीख की वैधता जाँचे, लेकिन आप नहीं चाहते कि वह BetterDate के पब्लिक इंटरफेस का हिस्सा बने.
क्लास BetterDate स्क्रिप्ट पेन में उपलब्ध है.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग
अभ्यास निर्देश
- एक class attribute
_MAX_DAYSजोड़ें, जो एक महीने में दिनों की अधिकतम संख्या31स्टोर करे. - एक और class attribute जोड़ें, जो एक साल में महीनों की अधिकतम संख्या
12स्टोर करे. इसे आंतरिक एट्रिब्यूट दर्शाने के लिए उपयुक्त नेमिंग कन्वेंशन का उपयोग करें. - एक
_is_valid()मेथड जोड़ें, जोdayऔरmonthएट्रिब्यूट्स अपनी-अपनी अधिकतम वैल्यू से कम या बराबर होने परTrueलौटाए, अन्यथाFalse. ध्यान रखें कि क्लास एट्रिब्यूट्स को उनके नामों से ही रेफर करें!
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Add class attributes for max number of days and months
class BetterDate:
____
def __init__(self, year, month, day):
self.year, self.month, self.day = year, month, day
@classmethod
def from_str(cls, datestr):
year, month, day = map(int, datestr.split("-"))
return cls(year, month, day)
# Add _is_valid() checking day and month values
____
bd1 = BetterDate(2020, 4, 30)
print(bd1._is_valid())
bd2 = BetterDate(2020, 6, 45)
print(bd2._is_valid())