Python Sınıflar/Nesneler - Python Dersleri

Python Sınıflar/Nesneler

Python, nesne tabanlı bir programlama dilidir. Python'da neredeyse her şey bir sınıftır.

Bir sınıf (class), kendisinden örnek oluşturulabilen bir nesnedir (object). Bu sınıflara özellik ve yöntemler atanabilir.

Bir Sınıf Oluşturmak

Sınıf oluşturmak için class ifadesi kullanılır. Bu ifadeden sonra sınıfın adına yer verilir ve iki nokta üst üste kullanılarak sınıf yapısı yazılmaya başlanır:

PYTHON Kodu

class Sinifim:
  x = 5
Yukarıdaki örnekte Sinifim adında ve tek özellikli (x) bir sınıf oluşturulmuştur.

Sınıfın Bir Örneğini (Nesne) Oluşturmak

Yukarıdaki örnekte bir sınıf tanımladık. Peki bu sınıfı nasıl nesne olarak oluşturup kullanacağız? Bunun için aşağıdaki örneği inceleyin:

PYTHON Kodu

class Sinifim:
  x = 5

p1 = Sinifim()
print(p1.x);
Örnek kodu incelediğimizde, nesne yaratırken sınıf adını ve sonrasında parantez aç-kapat yapıyoruz.

__init__() Fonksiyonu

Bundan önceki örnekler bir sınıfın temel bileşenleriydi. Şimdi bahsedilecek olan __init__() fonksiyonu ise sınıfın temel bileşenidir. Nesne oluşturulduğunda ilk olarak bu fonksiyon çalıştırılır.

PYTHON Kodu

class Kisi:
  def __init__(self, isim, yas):
    self.isim = isim
    self.yas = yas

p1 = Kisi("Murat", 36)

print(p1.isim)
print(p1.yas)
Yukarıdaki örnekte def __init__(self, isim, yas): sınıfın yapıcı fonksiyonudur. Burada belirtilen isim ve yas değişkenleri, sınıfın bir örneği oluşturulurken kullanılan değişkenlerdir.

Nesne Yöntemleri/Metotları

Nesneler için sınıfa özgü yöntemler/metotlar geliştirilebilir. Nesne yaratıldıktan sonra bu yöntemler .yontemAdi() şeklinde çalıştırılabilir.

PYTHON Kodu

class Kisi:
  def __init__(self, isim, yas):
    self.isim = isim
    self.yas = yas
  def yazdir(self):
    print("Merhaba, adım ", self.isim, ", yaşım ", self.yas);

p1 = Kisi("Murat", 36)
p1.yazdir()
NOT: Yukarıdaki örneklerde geçen self, sınıfın kendisini ifade eden bir parametre olup nesneye ait özellik ve yöntemlerle işlem yaparken kullanılır. İstenilirse bunun yerine farklı adlandırmalar yapılabilir. Ancak __init__() ve yöntemlerde kullanılması zorunludur. Aşağıdaki örnekte önce kendisi, sonradan da kisi şeklinde adlandırılıp kullanılmıştır:

PYTHON Kodu

class Kisi:
  def __init__(kendisi, isim, yas):
    kendisi.isim = isim
    kendisi.yas = yas
  def yazdir(kisi):
    print("Merhaba, adım ", kisi.isim, ", yaşım ", kisi.yas);

p1 = Kisi("Murat", 36)
p1.yazdir()

Nesne Özelliklerini Değiştirmek

Nesne özelliğinden sonra eşittir yazılarak yeni değer ifade edilebilir:

PYTHON Kodu

class Kisi:
  def __init__(self, isim, yas):
    self.isim = isim
    self.yas = yas

p1 = Kisi("Murat", 36)
p1.yas = 40
print(p1.yas)

Nesnenin Bir Özelliğini Ya Da Nesneyi Silmek

Bunun için del ifadesi kullanılabilir:

PYTHON Kodu

kisi = new Kisi("Murat", 36)

del kisi.yas # yas özelliğini siler

del kisi # nesneyi tamamen siler

pass İfadesi

Sınıflar boş olamaz. En azından tek bir satırlık kod beklerler. Bu nedenle eğer hiçbir kod yazılmayacaksa sınıftan sonra pass yazılmalıdır.