Fungsi super()
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan Python di Coddy. Pelajaran 18 dari 64.
Fungsi super() memungkinkan class turunan memanggil method dari class induknya. Dengan begitu, kamu bisa memperluas fungsionalitas class induk, bukan menggantinya sepenuhnya.
Berikut contoh penggunaan super() di constructor:
class Animal:
def __init__(self, name):
self.name = name
print(f"Animal created: {name}")
class Dog(Animal):
def __init__(self, name, breed):
super().__init__(name) # Panggil __init__ milik class induk
self.breed = breed
print(f"Dog breed set: {breed}")Buat object anjing:
buddy = Dog("Buddy", "Golden Retriever")
print(f"Name: {buddy.name}, Breed: {buddy.breed}")Output:
Animal created: Buddy
Dog breed set: Golden Retriever
Name: Buddy, Breed: Golden RetrieverGunakan super() untuk memperluas method induk:
class Animal:
def make_sound(self):
print("Generic animal sound")
class Dog(Animal):
def make_sound(self):
super().make_sound() # Panggil method induk terlebih dahulu
print("Woof!") # Tambahkan perilaku khusus anjingPanggil method yang diperluas:
buddy = Dog()
buddy.make_sound()Keluaran:
Generic animal sound
Woof!Tanpa super(), kamu akan kehilangan fungsionalitas parent:
class Cat(Animal):
def make_sound(self):
print("Meow!") # Hanya suara kucing, method induk diabaikan
cat = Cat()
cat.make_sound()output:
Meow!Poin utama: Gunakan super() untuk memanggil method class induk dari class anak. Dengan begitu, kamu dapat memperluas fungsionalitas, bukan menggantinya sepenuhnya. Penggunaan yang umum mencakup pemanggilan method __init__ class induk dan memperluas perilaku class induk.
Tantangan
SedangDalam tantangan ini, kamu akan menerapkan hierarki class Person dan Employee menggunakan pewarisan.
person.py: Berisi class Person dengan atribut name dan ageemployee.py: Berisi class Employee yang mewarisi Persondriver.py: File utama untuk menguji implementasimu
Setiap file berisi komentar TODO terperinci untuk memandu kamu dalam penerapannya.
Coba sendiri
# TODO: Impor class Person dari person.py
# TODO: Impor class Employee dari employee.py
def main():
# TODO: Buat object Person dengan nama "Alice" dan usia 30
person = None
# TODO: Buat object Employee dengan nama "Bob", usia 35, dan pekerjaan "Developer"
employee = None
# TODO: Panggil method introduce() pada object Person
# Output yang diharapkan: "Hi, I'm Alice and I'm 30 years old"
# TODO: Cetak baris kosong sebagai pemisah dengan print()
# TODO: Panggil method introduce() pada object Employee
# Output yang diharapkan:
# "Hi, I'm Bob and I'm 35 years old"
# "I work as a Developer"
if __name__ == "__main__":
main()Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Pemrograman Berorientasi Objek
1Dasar-Dasar OOP
File EksternalPengantar OOPclass vs objectParameter selfmethodAtributMethod Konstruktor (__init__)Rangkuman: Kalkulator Sederhana4Pewarisan
Pewarisan DasarFungsi super()Penimpaan MethodPewarisan BergandaUrutan Resolusi MethodRingkasan: Hierarki Karyawan5Polimorfisme
Meninjau Ulang Method OverridingDuck Typingclass dan method AbstrakDesain InterfaceRingkasan: Kalkulator Bentuk8Konsep OOP Lanjutan
Komposisi vs PewarisanMixinsMetode Statis dan Metode ClassDecorator ClassPengelola Konteks11Pola Desain Bagian 2
Pola PerintahPola AdapterPola DecoratorPola Template MethodPola StatePola Composite3Property class
Variabel instance vs variabel classDekorator propertyAtribut privatRangkuman: Pengelola Rekening Bank6Enkapsulasi
Anggota Public, Protected, PrivateModifier AksesPenyembunyian InformasiDecorator Property Tingkat LanjutUlasan: Sistem Catatan Siswa12Proyek: Manajemen Perpustakaan
Ikhtisar Proyekclass Buku dan PenggunaSistem PeminjamanFitur PencarianAntarmuka AdminPengujian dan IntegrasiLatihan sendiri: Compiler Python online