CodeBlanks Logo Icon CodeBlanks

super()

super() ile üst sınıfı çağırmayı öğrenirsin.

super() işlevi

super(), ebeveyn sınıfın metotlarına erişim sağlayan işlevdir. Çoğunlukla __init__ içinde ebeveynin yapıcı metodunu çağırmak için kullanılır.

Örnek: class Dog(Animal):\n def __init__(self, name):\n super().__init__(name). Burada super().__init__(name), ebeveynin __init__ metodunu çağırır ve name parametresini gönderir. Böylece ebeveynin kurulumu tekrar yazılmaz; yalnızca çağrılır.

super().__init__ deseni

Çocuk sınıfın __init__ metodu yazıldığında ebeveynin __init__'i otomatik çağrılmaz. Ebeveyn özniteliklerinin de kurulması için super().__init__(...) açıkça çağrılır.

Örnek: class Dog(Animal):\n def __init__(self, name, breed):\n super().__init__(name)\n self.breed = breed. Burada name ebeveyne, breed çocuğa özgidir. Bu desen hem ebeveyn hem çocuk özniteliklerini tek yerden kurar.

Uygulama Dog __init__ ile super çağır

Önce Animal sınıfını tanımla; def __init__(self, species): metodu ekle ve gövdede self.species = species yaz. Sonra class Dog(Animal): tanımla; def __init__(self, name): metodu ekle, gövdede super().__init__("köpek") ve self.name = name yaz. Sonra d = Dog("Karabaş") ile örnek oluştur ve print(d.name) yaz.

Başlangıç kodu

main.py
# Animal ve Dog sınıflarını tanımla

Örnek çözüm

main.py
# Animal ve Dog sınıflarını tanımla
class Animal:
    def __init__(self, species):
        self.species = species

class Dog(Animal):
    def __init__(self, name):
        super().__init__("köpek")
        self.name = name

d = Dog("Karabaş")
print(d.name)

Beklenen çıktı

Karabaş

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 super çağrısını tamamla

Soru
class Dog(Animal):
    def __init__(self, name):
        ____().__init__(name)
Cevap
class Dog(Animal):
    def __init__(self, name):
        super().__init__(name)

Açıklama: super() ebeveyn metotlarına erişim sağlar.

2 super() ne döndürür?

  • Çocuk sınıfın örneği
  • Yeni bir sınıf tanımı
  • Sınıf adını dizge olarak
  • Ebeveyn sınıfın geçici temsilcisi Doğru cevap

Açıklama: super(), ebeveynin metotlarına erişen geçici bir temsilci döndürür.

3 super kavramlarını eşle

Kavram Anlamı
super() Ebeveyne erişim
.__init__(name) Ebeveyn yapıcısı
self.breed = breed Çocuk özniteliği

Orta seviye bölümündeki tüm dersler