Python, nesne yönelimli bir programlama dilidir ve sınıflar bu dilin temel yapı taşlarından biridir. Nesne yönelimli programlama (OOP), verileri ve işlevleri bir araya getirerek daha organize, modüler ve yeniden kullanılabilir bir kod yazımı sağlar. Python’daki sınıflar, bu paradigmaya uygun olarak objelerin oluşturulmasına ve yönetilmesine olanak tanır.
Sınıf Nedir?
Sınıflar, benzer niteliklere sahip nesneleri temsil etmek için kullanılan bir kalıptır. Bir sınıf, veri öğelerini (nitelikler/özellikler) ve bu veriler üzerinde çalışan işlevleri (metodlar) içeren bir yapıdır.
1 2 3 4 5 6 7 8 |
class Araba: def __init__(self, marka, model, yil): self.marka = marka self.model = model self.yil = yil def bilgi(self): return f"{self.marka} {self.model} {self.yil}" |
Yukarıdaki örnekte, Araba
adında bir sınıf tanımladık. __init__
metodu bir sınıf örneği oluşturulduğunda otomatik olarak çağrılır ve marka
, model
ve yil
niteliklerini atanır. Ayrıca, bilgi
metodu, araba nesnesinin bilgilerini döndürmek için kullanılabilir.
Sınıfın Kullanımı
Sınıfları kullanarak nesneler oluşturabilir ve bunları programınızdaki farklı yerlerde kullanabilirsiniz.
1 2 3 4 5 |
araba1 = Araba("Toyota", "Corolla", 2020) araba2 = Araba("Honda", "Civic", 2022) print(araba1.bilgi()) # Çıktı: Toyota Corolla 2020 print(araba2.bilgi()) # Çıktı: Honda Civic 2022 |
Yukarıdaki örnekte, Araba
sınıfından iki farklı araba örneği oluşturduk ve her birinin bilgilerini çağırdık.
Kalıtım (Inheritance)
Python’da bir sınıfın başka bir sınıftan miras alabilmesi mümkündür. Bu özellik, kodun tekrar kullanılabilirliğini artırır.
1 2 3 4 5 6 7 |
class ElektrikliAraba(Araba): def __init__(self, marka, model, yil, batarya): super().__init__(marka, model, yil) self.batarya = batarya def tam_bilgi(self): return f"{self.bilgi()} - Batarya: {self.batarya} kWh" |
ElektrikliAraba
, Araba
sınıfından miras alarak batarya
niteliğini ekler ve tam_bilgi
metodunu tanımlar.
1 2 3 |
elektrikli_araba = ElektrikliAraba("Tesla", "Model S", 2023, 100) print(elektrikli_araba.tam_bilgi()) # Çıktı: Tesla Model S 2023 - Batarya: 100 kWh |
ElektrikliAraba
sınıfı, Araba
sınıfının özelliklerini ve metodlarını kullanırken kendi özel niteliklerini ve metodlarını da içerir.
Özel Metodlar (Dunder Methods)
Python’da çeşitli özel metodlar (çift alt çizgi ile başlayan ve biten metodlar) bulunur. Bu metodlar, özel davranışlar eklemek için kullanılır.
1 2 3 4 5 6 7 8 9 10 11 |
class Kitap: def __init__(self, isim, yazar, sayfa_sayisi): self.isim = isim self.yazar = yazar self.sayfa_sayisi = sayfa_sayisi def __str__(self): return f"{self.isim} - {self.yazar}" def __len__(self): return self.sayfa_sayisi |
__str__
metodu bir nesne metni (string) olarak temsil edilmesini sağlarken, __len__
metodu nesnenin uzunluğunu belirtir.
1 2 3 4 |
kitap = Kitap("Python ile Programlama", "Guido van Rossum", 350) print(str(kitap)) # Çıktı: Python ile Programlama - Guido van Rossum print(len(kitap)) # Çıktı: 350 |
Pass Nedir ?
pass
, Python’da bir ifade veya bloğun hiçbir şey yapmamasını sağlayan bir ifade olarak kullanılır. Genellikle bir yerhalinde bir şey yapılması gerektiği, ancak programın çalışması için şu an için bir şey yapılmasının gerekmediği durumlarda kullanılır.
Örneğin, bir fonksiyon, sınıf veya döngü tanımlarken içeriği daha sonra doldurulacaksa ve geçici olarak bir şey yapılmasına gerek yoksa pass
kullanılabilir. Bu durumda Python, programın bozulmadan çalışmasını sağlar.
1 2 3 4 |
if x < 5: pass # Şu an için bir şey yapmaya gerek yok, ama ileride eklenebilir else: print("x 5'ten büyük veya eşit.") |
pass
aynı zamanda bir sınıf veya fonksiyon tanımlarken de kullanılabilir:
1 2 3 4 5 |
def my_function(): pass # Fonksiyon içeriği daha sonra eklenecek class MyClass: pass # Sınıfın içeriği daha sonra tamamlanacak |
pass
kullanımı, sözdizimi açısından gereklilik olsa da işlevsel bir şey yapılmayacağı zamanlarda kullanılır. Bu durumlar, kod geliştirilirken veya yapı henüz tamamlanmadığında oldukça yaygın olabilir.
Sonuç
Python’da sınıflar, nesne yönelimli programlamanın temel taşlarından biridir. Sınıflar, kodunuzu düzenli hale getirmenize, kod tekrarını azaltmanıza ve daha modüler bir yapı oluşturmanıza yardımcı olabilir. Bu yapı, programınızı daha anlaşılır, bakımı kolay ve genişletmeye uygun hale getirir. İyi tasarlanmış sınıflar, Python programlamada güçlü bir araçtır ve kodunuzu daha etkili hale getirmenize olanak tanır.
İlk Yorumu Siz Yapın