Menu
CoddyTech

super() Fonksiyonu

Coddy'nin Python Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 18 / 64.

super() işlevi, bir alt sınıfın üst sınıfındaki yöntemleri çağırmasına olanak tanır. Bu, üst sınıfın işlevselliğini tamamen değiştirmek yerine genişletmenizi sağlar.

İşte kurucuda super() kullanımına bir örnek:

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)  # Ebeveynin __init__ metodunu çağır
        self.breed = breed
        print(f"Dog breed set: {breed}")

Bir köpek nesnesi oluşturun:

buddy = Dog("Buddy", "Golden Retriever")
print(f"Name: {buddy.name}, Breed: {buddy.breed}")

Çıktı:

Animal created: Buddy
Dog breed set: Golden Retriever
Name: Buddy, Breed: Golden Retriever

Üst sınıf yöntemlerini genişletmek için super() kullanın:

class Animal:
    def make_sound(self):
        print("Generic animal sound")
class Dog(Animal):
    def make_sound(self):
        super().make_sound()  # Önce ebeveynin metodunu çağır
        print("Woof!")        # Köpeğe özgü davranışı ekle

Genişletilmiş metodu çağırın:

buddy = Dog()
buddy.make_sound()

Çıktı:

Generic animal sound
Woof!

super() olmadan, ebeveynin işlevselliğini kaybedersiniz:

class Cat(Animal):
    def make_sound(self):
        print("Meow!")  # Sadece kedi sesi, üst sınıf metodu yok sayıldı
cat = Cat()
cat.make_sound()

Çıktı:

Meow!

Temel Nokta: Alt sınıflardan üst sınıf yöntemlerini çağırmak için super() kullanın. Bu, işlevselliği tamamen değiştirmek yerine genişletmenize olanak tanır. Yaygın kullanımlar arasında üst sınıfın __init__ yöntemlerini çağırmak ve üst sınıf davranışını genişletmek yer alır.

challenge icon

Görev

Orta

Bu meydan okumada, kalıtımı kullanarak bir Person ve Employee sınıf hiyerarşisi uygulayacaksın.

  • person.py: name ve age özniteliklerine sahip Person sınıfını içerir
  • employee.py: Person sınıfından kalıtım alan Employee sınıfını içerir
  • driver.py: Uygulamanı test etmek için ana dosya

Her dosya, uygulama boyunca sana yol gösterecek ayrıntılı TODO yorumları içerir.

Kendin dene

# TODO: Person sınıfını person.py dosyasından içe aktar
# TODO: Employee sınıfını employee.py dosyasından içe aktar

def main():
    # TODO: "Alice" adında ve 30 yaşında bir Person nesnesi oluştur
    person = None
    
    # TODO: "Bob" adında, 35 yaşında ve işi "Developer" olan bir Employee nesnesi oluştur
    employee = None
    
    # TODO: Person nesnesi üzerinde introduce() metodunu çağır
    # Expected output: "Hi, I'm Alice and I'm 30 years old"
    
    # TODO: Boşluk için boş bir satır yazdır - print()
    
    # TODO: Employee nesnesi üzerinde introduce() metodunu çağır
    # Beklenen çıktı: 
    # "Hi, I'm Bob and I'm 35 years old"
    # "I work as a Developer"

if __name__ == "__main__":
    main()
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Nesne Yönelimli Programlama bölümündeki tüm dersler

Kendi başına pratik yap: Online Python derleyicisi