"class Calisan: def __init__(self, isim, maas):..." Yukarıdaki kodun çıktısı ne olacaktır?

image (7)

class Calisan:
    def __init__(self, isim, maas):
        self.isim = isim
        self.maas = maas

    def bilgi_goster(self):
        return f"Isim: $self.isim$, Maas: $self.maas$"

class Mudur(Calisan):
    def __init__(self, isim, maas, departman):
        super().__init__(isim, maas)
        self.departman = departman

    def bilgi_goster(self):
        return f"Isim: $self.isim$, Maas: $self.maas$, Departman: $self.departman$"

mudur = Mudur("Ahmet", 5000, "IT")
print(mudur.bilgi_goster())

Yukarıdaki kodun çıktısı ne olacaktır?


Bu resimde Python programlama dilinde nesne yönelimli programlamaya (OOP) dayalı bir sınıf tanımı ve bu sınıfların nasıl kullanıldığını gösteren bir kod parçası bulunmaktadır. “Calisan” ve “Mudur” adında iki sınıf tanımlanmış, bu sınıfların yöntemleri gösterilmiştir. Kod, bir “Mudur” nesnesi oluşturup onun bilgi göstermesini sağlamaktadır.

Kodun Çıktısı

Isim: Ahmet, Maas: 5000, Departman: IT

Detaylı Açıklama

Kod, Python programlama dilinde nesne yönelimli programlamayı (OOP) temel alarak iki sınıf tanımlar: Calisan ve Mudur. Her iki sınıf da kendi içinde bazı özelliklere (niteliklere) ve yöntemlere (metotlara) sahiptir. Kodun işleyişine dair adım adım açıklama yapalım.

Sınıf: Calisan

Bu sınıf, çalışanlara ait temel bilgileri tutmak için tasarlanmıştır.

__init__ Metodu

def __init__(self, isim, maas):
    self.isim = isim
    self.maas = maas

Bu, sınıf başlatıcı (constructor) metodudur. isim ve maas adlı iki parametre alır ve bunları sınıf niteliklerine atar.

bilgi_goster Metodu

def bilgi_goster(self):
    return f"Isim: {self.isim}, Maas: {self.maas}"

Bu metot, çalışan bilgilerinin bir formatta döndürülmesini sağlar.

Sınıf: Mudur

Bu sınıf, Calisan sınıfını miras alır ve ek olarak departman bilgisini tutar.

__init__ Metodu

def __init__(self, isim, maas, departman):
    super().__init__(isim, maas)
    self.departman = departman

Bu metot, Calisan sınıfının başlatıcısını super() aracılığıyla çağırır ve temel bilgilerin yanı sıra departman bilgisini ekler.

bilgi_goster Metodu

def bilgi_goster(self):
    return f"Isim: {self.isim}, Maas: {self.maas}, Departman: {self.departman}"

Bu metot, çalışan ve müdire ait bilgilerin tamamının bir formatta döndürülmesini sağlar.

Kodun Çalışılması

mudur = Mudur("Ahmet", 5000, "IT")
print(mudur.bilgi_goster())

Bu kısımda, Mudur sınıfından bir nesne oluşturuluyor (mudur) ve bu nesnenin bilgi_goster metodu çağrılıyor.

Alternatif Seçeneklerin Değerlendirilmesi

1. Yanlış: Isim: , Maas: , Departman: IT

Bu çıktı, isim ve maas niteliklerinin doğru bir şekilde atanmamış olduğunu gösterir. super().__init__(isim, maas) çağrısının eksik olması ya da yanlış kullanılması bu soruna yol açabilir.

2. Yanlış: Isim: Ahmet, Maas: 5000

Bu çıktı, Mudur sınıfında bilgi_goster metodunun Calisan sınıfından devralındığını ve departman bilgisinin göz ardı edildiğini gösterir. Mudur sınıfında bilgi_goster metodunun overrides edilememesi bu soruna yol açabilir.

Terimler

Nesne Yönelimli Programlama (OOP)

OOP, yazılım tasarımında nesnelerin kullanıldığı bir paradigmadır. Nesneler, veri mühendisliğinde veri ve davranışları (yöntemler) bir arada tutar ve kapsülleme, çok biçimlilik, kalıtım gibi özellikleriyle yazılım geliştirmeyi daha esnek hale getirir.

super() Fonksiyonu

super(), türetilmiş bir sınıfın taban sınıfının metodlarını çağırmak için kullanılır. Bu, çoklukla başlatıcılarında (constructors) kullanılır.

Başlatıcı (Constructor)

Bir sınıfın örneği oluşturulurken çağrılan özel bir metottur ve genellikle __init__ adını taşır. Sınıfın niteliğini başlatmak için kullanılır.