super()
- Python kursu
- Orta seviye
- Ders 8/116
- 5 dk
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
# Animal ve Dog sınıflarını tanımlaÖrnek çözüm
# 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
class Dog(Animal):
def __init__(self, name):
____().__init__(name)
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 |