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ışı ekleGeniş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.
Görev
OrtaBu 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çeriremployee.py: Person sınıfından kalıtım alan Employee sınıfını içerirdriver.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()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
1Nesne Yönelimli Programlamanın Temelleri
Nesne Yönelimli Programlamaya GirişHarici DosyalarSınıflar ve Nesnelerself ParametresiMetotlarÖzniteliklerKurucu Metot (__init__)Tekrar - Basit Hesap Makinesi4Kalıtım
Temel Kalıtımsuper() FonksiyonuMetot Geçersiz KılmaÇoklu KalıtımMetot Çözümleme SırasıÖzet - Çalışan Hiyerarşisi7Özel Metotlar
Sihirli Metotlara GirişOperatör Aşırı YüklemeKapsayıcı Sihirli MetotlarıÖzet - Özel Liste10Tasarım Kalıpları Bölüm 1
Tasarım kalıplarına girişSingleton KalıbıFactory KalıbıObserver KalıbıStrategy Kalıbı13Final Meydan Okumaları
E-öğrenme PlatformuBankacılık SistemiOyun Karakteri GeliştirmeAraç Kiralama Servisi5Çok Biçimlilik (Polymorphism)
Metot Geçersiz Kılmaya Yeniden BakışDuck TypingSoyut Sınıflar ve MetotlarArayüz TasarımıÖzet - Şekil Hesaplayıcı8İleri Düzey OOP Kavramları
Kompozisyon ve KalıtımMixinsStatik ve Sınıf MetotlarıSınıf DekoratörleriBağlam Yöneticileri11Tasarım Kalıpları Bölüm 2
Komut KalıbıAdaptör KalıbıDekoratör KalıbıŞablon Metot KalıbıDurum KalıbıKompozit KalıbıKendi başına pratik yap: Online Python derleyicisi