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:
-
Sınıf Tanımı (Class Definition):
-
classanahtar 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: ... -
-
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
modelverenk) atanır. -
selfparametresi, 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 -
-
Özellikler (Attributes):
- Sınıfın her örneğinin (nesnesinin) sahip olduğu veriler veya değişkenlerdir.
- Yukarıdaki örnekte,
modelverenkbirArabanesnesinin özellikleridir.
-
Metotlar (Methods):
- Sınıf içindeki fonksiyonlardır. Nesnenin bir davranışını tanımlar.
- Örneğin,
hizlanmetodu,Arabanesnesinin 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.
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 Class 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!