Menggunakan atribut internal
Pada latihan ini, Anda akan kembali ke kelas BetterDate dari Bab 2.
Anda memutuskan untuk menambahkan sebuah metode yang memeriksa validitas tanggal, tetapi Anda tidak ingin menjadikannya bagian dari antarmuka publik BetterDate.
Kelas BetterDate tersedia di panel skrip.
Latihan ini adalah bagian dari kursus
Pemrograman Berorientasi Objek di Python
Petunjuk latihan
- Tambahkan sebuah atribut kelas
_MAX_DAYSyang menyimpan jumlah maksimal hari dalam sebulan -31. - Tambahkan atribut kelas lain yang menyimpan jumlah maksimal bulan dalam setahun -
12. Gunakan konvensi penamaan yang sesuai untuk menunjukkan bahwa ini adalah atribut internal. - Tambahkan metode
_is_valid()yang mengembalikanTruejika atributdaydanmonthkurang dari atau sama dengan nilai maksimum masing-masing, danFalsejika sebaliknya. Pastikan merujuk atribut kelas berdasarkan namanya!
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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())