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.
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 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 olarakselfalı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.
Bu ders size yardımcı oldu mu? Puan verin!
Geri bildiriminiz içeriğimizi sürekli güncel ve kaliteli tutmamızı sağlar.
Sıkça Sorulan Sorular (SSS)
Bu ders ve konuyla ilgili en çok merak edilenler
Python Constructor dersini öğrenmek için ön koşul var mı?
Bu eğitim temel seviyeden ileri seviyeye adım adım hazırlanmıştır. Kodları kopyalayıp Canlı Editör üzerinde test ederek kolayca pratik yapabilirsiniz.
Örnek kodları kendi projelerimde ücretsiz kullanabilir miyim?
Evet, PHP Hocası üzerindeki tüm kod örnekleri açık kaynak mantığıyla sunulmaktadır. Ticari veya kişisel projelerinizde serbestçe kullanabilirsiniz.
Takıldığım bir yerde nereden soru sorabilirim?
Dersin altındaki topluluk yorumları bölümünden sorunuzu sorabilirsiniz. Eğitmenlerimiz ve topluluk üyelerimiz kısa sürede yanıt verecektir.
Topluluk Yorumları (0)
Ders Hakkında Yorum Yap veya Soru Sor
Henüz yorum yapılmamış. İlk yorumu siz yazın!