Python Class

Python Class

Python'da Class (Sınıf), nesne yönelimli programlamanın temel yapı taşıdır. Bir sınıf, nesneler için bir şablon veya kalıptır. Nesneler (objects), bu şablona göre yaratılır ve sınıfın belirlediği özelliklere (attributes) ve davranışlara (methods) sahip olurlar.

Python Sınıfının Temel Yapısı

Bir sınıf tanımlamak için Python'da class anahtar kelimesi kullanılır. Örnek bir sınıf yapısı şu şekildedir:

class Araba: def __init__(self, model, renk): # Yapıcı metot (constructor) self.model = model # Nesne özelliği (attribute) self.renk = renk # Nesne özelliği (attribute) def hizlan(self): # Metot (davranış) print(f"{self.model} hızlanıyor!")

Parçalarına Ayıralım:

  1. Sınıf Tanımı (Class Definition):

    • class anahtar kelimesiyle başlar.
    • Sınıfın adı büyük harfle başlamalıdır, bu Python'da yaygın bir stil kuralıdır.
    class Araba: ...
  2. Yapıcı Metot (init):

    • __init__ metodu, Python'da bir sınıftan yeni bir nesne oluşturulduğunda otomatik olarak çalışan özel bir metottur.
    • Bu metodun içinde sınıfın özellikleri (örneğin model ve renk) atanır.
    • self parametresi, sınıfın mevcut örneğini temsil eder. Nesneye özgü özelliklere ve metotlara erişim sağlar.
    def __init__(self, model, renk): self.model = model # Nesneye özellik atıyoruz self.renk = renk # Nesneye özellik atıyoruz
  3. Özellikler (Attributes):

    • Sınıfın her örneğinin (nesnesinin) sahip olduğu veriler veya değişkenlerdir.
    • Yukarıdaki örnekte, model ve renk bir Araba nesnesinin özellikleridir.
  4. Metotlar (Methods):

    • Sınıf içindeki fonksiyonlardır. Nesnenin bir davranışını tanımlar.
    • Örneğin, hizlan metodu, Araba nesnesinin hızlanma davranışını tanımlar.
    def hizlan(self): print(f"{self.model} hızlanıyor!")

Sınıfı Kullanma

Bir sınıftan nesne (object) oluşturmak için sınıfın adını bir fonksiyon gibi kullanırız:

araba1 = Araba("Toyota", "Kırmızı") # Araba sınıfından bir nesne oluşturduk araba2 = Araba("Honda", "Mavi") print(araba1.model) # Toyota print(araba2.renk) # Mavi araba1.hizlan() # Toyota hızlanıyor!

Özel Metotlar (Dunder Methods)

Python'da iki alt çizgi ile başlayan ve biten özel metotlar vardır. __init__ gibi. Bunlar dunder methods (double underscore) olarak da bilinir. Bir sınıfa zengin özellikler kazandırmak için kullanılırlar. Örneğin:

  • __str__(self): Sınıfın bir metne dönüştürüldüğünde nasıl görüneceğini tanımlar.
  • __len__(self): Sınıfın uzunluğunu belirlemek için kullanılır (örneğin liste gibi nesneler için).
class Araba: def __init__(self, model, renk): self.model = model self.renk = renk def __str__(self): return f"Araba modeli: {self.model}, rengi: {self.renk}" araba = Araba("Tesla", "Beyaz") print(araba) # Araba modeli: Tesla, rengi: Beyaz

Kapsülleme (Encapsulation)

Sınıf içinde değişkenlerin doğrudan dışarıdan erişimini sınırlandırmak için genellikle kapsülleme kullanılır. Değişkenleri özel (private) hale getirmek için __ ile başlatabiliriz.

class Kisi: def __init__(self, isim, yas): self.isim = isim self.__yas = yas # Özel değişken def yas_getir(self): return self.__yas # Özel değişkene erişim için bir metot kisi1 = Kisi("Ahmet", 25) print(kisi1.yas_getir()) # 25

Kalıtım (Inheritance)

Bir sınıf başka bir sınıftan miras alarak, o sınıfın özelliklerini ve metotlarını kullanabilir.

class Araba: def __init__(self, model): self.model = model def bilgi(self): print(f"Bu bir {self.model}.") class ElektrikliAraba(Araba): # Araba sınıfından miras alıyor def __init__(self, model, pil_kapasitesi): super().__init__(model) self.pil_kapasitesi = pil_kapasitesi def bilgi(self): super().bilgi() print(f"Pil kapasitesi: {self.pil_kapasitesi} kWh") tesla = ElektrikliAraba("Tesla Model S", 100) tesla.bilgi()

Sonuç

Python'da sınıflar, nesne yönelimli programlamanın temelini oluşturur ve yazılımın modüler, okunabilir ve genişletilebilir olmasını sağlar. Sınıflar, veriyi ve o veriye ait işlevleri bir araya getirerek, kodun daha düzenli ve yeniden kullanılabilir olmasına yardımcı olur.



Yorum Ekle

Üzerine gel