Python’da Nesne Tabanlı Programlama (Object-Oriented Programming – OOP), yazılımı daha modüler, bakımı kolay ve tekrar kullanılabilir hale getirmek için kullanılan bir yaklaşımdır. OOP’nin temel taşlarından ikisi sınıflar (classes) ve nesneler (objects)‘dir. Bu makalede Python’da sınıf ve nesne kavramları detaylı olarak ele alınacaktır.
Sınıflar (Classes) Nedir?
Sınıf, nesnelerin şablonudur. Bir sınıf, nesnelerin taşıyacağı verileri (nitelikler) ve bu veriler üzerinde işlem yapacak fonksiyonları (metotlar) tanımlar.
class Araba:
def __init__(self, marka, model, yil):
self.marka = marka
self.model = model
self.yil = yil
def bilgileri_goster(self):
print(f"{self.yil} model {self.marka} {self.model}")
__init__
Metodu
Bu metod, bir sınıftan yeni bir nesne oluşturulduğunda otomatik çalışır. Nesnenin ilk değerlerini belirlemek için kullanılır.
self
Anahtar Kelimesi
Sınıf içinde tanımlanan metotların nesneye erişebilmesi için kullanılır.
Nesneler (Objects) Nedir?
Sınıf bir şablonsa, nesne bu şablona göre oluşturulmuş bir örnektir.
araba1 = Araba("Toyota", "Corolla", 2020)
araba2 = Araba("Honda", "Civic", 2022)
araba1.bilgileri_goster() # 2020 model Toyota Corolla
araba2.bilgileri_goster() # 2022 model Honda Civic
Metotlar (Methods)
Bir sınıf içinde tanımlanan fonksiyonlara “metot” denir. Nesnenin davranışlarını tanımlar.
class Ogrenci:
def __init__(self, ad, soyad):
self.ad = ad
self.soyad = soyad
self.notlar = []
def not_ekle(self, not_):
self.notlar.append(not_)
def ortalama(self):
return sum(self.notlar) / len(self.notlar)
ogrenci1 = Ogrenci("Ahmet", "Yılmaz")
ogrenci1.not_ekle(90)
ogrenci1.not_ekle(80)
print(ogrenci1.ortalama()) # 85.0
Kapsülleme (Encapsulation)
Verilerin ve metotların bir sınıf içinde toplanmasıdır. Dışarıdan erişimi sınırlamak için özel nitelikler tanımlanabilir.
class BankaHesabi:
def __init__(self, isim, bakiye):
self.isim = isim
self.__bakiye = bakiye # Özel nitelik
def bakiye_goster(self):
print(f"{self.isim} adlı hesabın bakiyesi: {self.__bakiye} TL")
def para_yatir(self, miktar):
self.__bakiye += miktar
hesap = BankaHesabi("Ali", 1000)
hesap.para_yatir(500)
hesap.bakiye_goster() # Ali adlı hesabın bakiyesi: 1500 TL
Sonuç
Sınıflar ve nesneler, Python’da daha yapılı ve anlaşılabilir kod yazmanın temel taşlarındandır. Nesne Tabanlı Programlama, gerçek hayattaki varlıkları ve işleyişleri yazılıma taşıyarak programlamayı daha sezgisel hale getirir.
Bir sonraki adımda “kalıtım (inheritance)”, “polimorfizm (polymorphism)” ve “soyut sınıflar (abstract classes)” gibi daha ileri OOP kavramlarına geçilebilir.