Resim

Sınıfın Temel Bileşenleri

Sınıfın Temel Bileşenleri

Bir sınıfın tanımı üç ana bileşenden oluşur: Yapıcı Metot (__init__), Nitelikler (Veri) ve Metotlar (Davranış).

1. Nitelikler (Attributes / Özellikler)

Nitelikler, bir nesnenin sahip olduğu verilerdir. Bir objeyi tanımlayan, onu diğerlerinden ayıran özelliklerdir (Örn: Araba için renk, marka).

a. Sınıf Nitelikleri (Class Attributes)

Sınıfın içinde, herhangi bir metodun dışında tanımlanan özelliklerdir. Bu özellikler, o sınıftan türetilen tüm nesneler için ortaktır ve aynı değeri taşır.

b. Nesne Nitelikleri (Instance Attributes)

Yapıcı metot (__init__) içinde tanımlanan özelliklerdir. Her nesneye özgüdür ve o nesnenin kendi değerini saklar.

2. Yapıcı Metot (__init__)

__init__ (initializer) metodu, bir sınıfın en önemli metodudur. Bu, özel (dunder/magic) metot olarak adlandırılır.

  • Ne Zaman Çalışır: Bir sınıftan yeni bir nesne oluşturulduğu anda (yani Araba() çağrıldığında) otomatik olarak çağrılır.

  • Amacı: Yeni oluşturulan nesnenin temel nesne niteliklerini başlatmak ve başlangıç değerlerini atamaktır.

self Parametresi

Tüm sınıf metotlarının (ve özellikle __init__'in) ilk parametresi self olmalıdır.

self, oluşturulmakta olan nesnenin kendisine referans verir. Python, metodu çağırırken bu self argümanını otomatik olarak iletir. Böylece metot, hangi nesnenin üzerinde çalıştığını bilir.

  • Örnek: Niteliklerin ve __init__ Kullanımı

class Araba:
    # 1. Sınıf Niteliği (Ortak)
    tekerlek_sayisi = 4 

    # 2. Yapıcı Metot (__init__)
    def __init__(self, renk, marka):
        # self.renk ve self.marka nesne nitelikleridir 
        #(Her nesne için farklı)
        self.renk = renk 
        self.marka = marka
        self.hiz = 0 # Başlangıç hızı 0 olarak belirlendi

# Nesne oluşturma (renk ve marka argümanlarını __init__'e gönderir)
araba_1 = Araba("Kırmızı", "Ferrari")
araba_2 = Araba("Mavi", "Tofaş")

print(f"1. Araba: {araba_1.marka}, Renk: {araba_1.renk}")
print(f"2. Araba: {araba_2.marka}, Renk: {araba_2.renk}")

Kendiniz Deneyebilirsiniz:

3. Metotlar (Methods / Davranışlar)

Metotlar, sınıfa ait fonksiyonlardır. Bir nesnenin gerçekleştirebileceği eylemleri veya davranışları tanımlar.

  • Metot Tanımı: Normal fonksiyonlar gibi def ile tanımlanır, ancak ilk parametre olarak self alırlar.

  • Örnek: Davranış Ekleme

Araba sınıfına hızlanma (ivme) ve frenleme (yavaşlama) metotlarını ekleyelim:

class Araba:
    tekerlek_sayisi = 4 

    def __init__(self, renk, marka):
        self.marka = marka
        self.hiz = 0 # Nesne niteliği

    def hizlan(self, miktar):
        self.hiz += miktar  # Nesnenin hız niteliğini değiştirir
        print(f"{self.marka} hızlanıyor. Yeni Hız: {self.hiz}")

    def fren_yap(self):
        self.hiz = 0
        print(f"{self.marka} durdu.")

# Metotları çağırma (Davranış)
araba_1 = Araba("Kırmızı", "Ferrari")

araba_1.hizlan(50) # Çıktı: Ferrari hızlanıyor. Yeni Hız: 50
araba_1.hizlan(20) # Çıktı: Ferrari hızlanıyor. Yeni Hız: 70
araba_1.fren_yap()  # Çıktı: Ferrari durdu.

Kendiniz Deneyebilirsiniz:

4. String Temsili Metotlar (__str__ ve __repr__)

Bir nesneyi print() ile yazdırmaya çalıştığınızda, Python varsayılan olarak nesnenin bellekteki konumunu gösterir. Bu çıktıyı özelleştirmek için bu özel metotlar kullanılır:

  • __str__(self): Nesnenin kullanıcıya dönük, okunabilir dize temsilini döndürür. (Genellikle str() veya print() ile kullanılır.)

  • __repr__(self): Geliştiriciye dönük, nesneyi yeniden oluşturmaya yardımcı olacak kesin dize temsilini döndürür.

class Kullanici:
    def __init__(self, ad):
        self.ad = ad
    def __str__(self):
        return f"Kullanıcı Adı: {self.ad}"
   # __repr__ olmasaydı print(kullanici_1) bellekteki konumu verirdi.
kullanici_1 = Kullanici("Deniz")
print(kullanici_1)
# Çıktı: Kullanıcı Adı: Deniz (Özelleştirilmiş çıktı!)

Kendiniz Deneyebilirsiniz:

🔥 Python Kariyerinizi Hemen Başlatın!

Hemen kursumuza kaydolun ve bu güçlü araçları kullanarak profesyonel Python geliştiricisi olma yolunda ilk adımı atın. Kursumuzdaki uygulamalı modüller, sizi sadece bir yazılımcı adayı değil, hazır bir profesyonel haline getirecek. Python Eğitimini Udemy platformunda bulabilirsiniz.

[ Python Eğitimi Sıfırdan İleri Seviye ]

Tıklayın ve Python Eğitimine Hemen Kaydolun!

Yorumlar

Bu blogdaki popüler yayınlar

Python random Modülü

Python print()

Yazılım Nedir?