Dahili öznitelikleri kullanma
Bu egzersizde, Bölüm 2'deki BetterDate sınıfına geri döneceksin.
Tarihin geçerliliğini kontrol eden bir yöntem eklemeye karar veriyorsun, ancak bunun BetterDate'in herkese açık arabiriminin bir parçası olmasını istemiyorsun.
BetterDate sınıfı komut dosyası bölmesinde mevcut.
Bu egzersiz
Python'da Nesne Yönelimli Programlama
kursunun bir parçasıdırEgzersiz talimatları
- Bir ay içindeki en fazla gün sayısını -
31- tutan_MAX_DAYSadlı bir sınıf özniteliği ekle. - Bir yıldaki en fazla ay sayısını -
12- tutan başka bir sınıf özniteliği ekle. Bunun dahili bir öznitelik olduğunu belirtmek için uygun adlandırma kuralını kullan. dayvemonthöznitelikleri ilgili en büyük değerlere küçük veya eşitseTrue, değilseFalsedöndüren bir_is_valid()yöntemi ekle. Sınıf özniteliklerine adlarıyla başvurduğundan emin ol!
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# 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())