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 merupakan bagian dari kursus
Pemrograman Berorientasi Objek di Python
Instruksi 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 langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
# 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())