Python Constructor

Python Constructor

Python'da constructor (yapıcı metot), bir sınıftan yeni bir nesne oluşturulurken otomatik olarak çalışan bir metottur. Python'da bu işlevi sağlayan özel metodun adı __init__ metodudur.

Constructor'ın Temel Görevi:

  • Bir sınıftan nesne oluşturulurken çalıştırılır ve bu nesnenin başlangıç durumunu belirler.
  • Constructor, genellikle nesnenin özelliklerini (attributes) tanımlamak ve başlangıç değerlerini atamak için kullanılır.

__init__ Metodu

Python'da __init__ metodu, sınıfa ait özelliklerin (attributes) ilk değerlerini ayarlamak için kullanılır. Bu metodun içinde nesneye özel özellikler tanımlanır.

Basit Bir Constructor Örneği:

class Araba: def __init__(self, model, renk): # Constructor self.model = model # Nesnenin model özelliği self.renk = renk # Nesnenin renk özelliği def bilgi(self): print(f"Araba modeli: {self.model}, rengi: {self.renk}")

Yukarıdaki Araba sınıfında, __init__ metodu, model ve renk adında iki özelliği sınıfın nesnelerine atar. Bu, her yeni araba nesnesi oluşturulduğunda çalışır.

Constructor Nasıl Çalışır?

Bir sınıftan nesne oluşturulduğunda __init__ metodu otomatik olarak çağrılır ve parametreler bu metoda aktarılır. Örneğin:

araba1 = Araba("Toyota", "Kırmızı") # __init__ otomatik olarak çağrılır araba2 = Araba("Honda", "Mavi") araba1.bilgi() # Araba modeli: Toyota, rengi: Kırmızı araba2.bilgi() # Araba modeli: Honda, rengi: Mavi

self Parametresi Nedir?

  • self, sınıfın o anki örneğini temsil eder ve sınıf içindeki özelliklere ve metotlara erişim sağlar.
  • Her sınıf metodu (özellikle __init__) ilk parametre olarak self alır, fakat bu parametreyi sınıfı çağırırken belirtmemize gerek yoktur. Python bunu otomatik olarak halleder.
class Kisi: def __init__(self, isim): self.isim = isim # self.isim, nesneye ait bir özelliktir def selamla(self): print(f"Merhaba, benim adım {self.isim}.")

Bu sınıftan bir nesne oluşturulduğunda:

kisi1 = Kisi("Ali") kisi1.selamla() # Merhaba, benim adım Ali.

Constructor İçinde Varsayılan Değerler

Constructor'da parametrelere varsayılan değerler de atanabilir. Bu sayede, nesne oluşturulurken bazı parametreler belirtilmese bile varsayılan değerler kullanılır.

class Araba: def __init__(self, model="Bilinmiyor", renk="Bilinmiyor" ): self.model = model self.renk = renk def bilgi(self): print(f"Araba modeli: {self.model}, rengi: {self.renk}") araba1 = Araba() # Parametre verilmedi, varsayılan değerler kullanılır araba2 = Araba("Tesla", "Beyaz") araba1.bilgi() # Araba modeli: Bilinmiyor, rengi: Bilinmiyor araba2.bilgi() # Araba modeli: Tesla, rengi: Beyaz

Birden Fazla Constructor

Python'da doğrudan birden fazla constructor (metot aşırı yükleme, yani method overloading) desteklenmez. Ancak bu durumu farklı yollarla yönetmek mümkündür, örneğin parametrelerin varsayılan değerlerini belirlemek ya da koşullu ifadeler kullanmak yaygın bir tekniktir.

class Araba: def __init__(self, model=None, renk=None ): if model and renk: self.model = model self.renk = renk else: self.model = "Bilinmiyor" self.renk = "Bilinmiyor" def bilgi(self): print(f"Araba modeli: {self.model}, rengi: {self.renk}") araba1 = Araba("Toyota", "Kırmızı") araba2 = Araba() araba1.bilgi() # Araba modeli: Toyota, rengi: Kırmızı araba2.bilgi() # Araba modeli: Bilinmiyor, rengi: Bilinmiyor

Özet

  • Constructor: Bir sınıftan

nesne oluşturulurken otomatik olarak çalışan bir yapıcı metottur.

  • Python'da constructor işlevini __init__ metodu yerine getirir.
  • Constructor, nesnenin başlangıç özelliklerini ayarlamak için kullanılır.
  • self, o sınıftan oluşturulan nesneyi temsil eder ve sınıfın içinde kullanılır.
  • Parametrelere varsayılan değerler verilebilir ve birden fazla constructor yerine alternatif çözümler üretilebilir.

Constructor, nesne yönelimli programlamada sınıfların düzgün bir şekilde çalışmasını sağlayan önemli bir yapıdır.



Yorum Ekle

Üzerine gel