MulaiMulai sekarang secara gratis

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

Lihat Kursus

Petunjuk latihan

  • Tambahkan sebuah atribut kelas _MAX_DAYS yang 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 mengembalikan True jika atribut day dan month kurang dari atau sama dengan nilai maksimum masing-masing, dan False jika 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())
Edit dan Jalankan Kode