Merhaba arkadaşlar, bugün ki konumuz sınıflar. Sınıflar değişkenlere özellik eklemek için kullanılır. Daha iyi anlamak için günlük yaşamdan örnek verirsek; kişiler değişken olurken kimlikleri sınıflar aracılığıyla kendilerine kazandırılmış özelliklerdir. Python’da sınıf tanımlaması oldukça basittir.
class ogrenci_bilgisi():
yas = 0
boy = 0
devamsizlik = 0
İlk class’ımızı tanımlamış olduk. Söz dizimine bakacak olursak class yazısı ile bilgisayara class tanımlayacağımızı belirtiyoruz. ilk_sinif yazısı class’ımızın ismidir. yas ve boy değişkenleri ise class’ımızın alt değişkenleriymiş gibi düşünülebilir.
Hadi class’ımızı çağıralım, bir değişkene atayalım ve aynı değişkeni nesne haline getirelim.
ahmet = ogrenci_bilgisi()
ahmet.yas = 13
ahmet.boy = 167
ahmet.devamsizlik = 5
print(ogrenci_bilgisi.yas)
print("Ahmet'in yaşı:", ahmet.yas)
print(ogrenci_bilgisi.boy)
print("Ahmet'in boyu:", ahmet.boy)
print(ogrenci_bilgisi.devamsizlik)
print("Ahmet'in devamsızlığı:", ahmet.devamsizlik)
Düşünüldüğünde bütün bir okulun verisi düzgün bir şekilde tutulabilir.
Şimdi class’ların başka bir kullanımına değinelim. Class’ların altında fonksiyonlar tanımlayarak kendi modülünüzü yazabilirsiniz.
class kalan_bulma():
def __init__(self, bolunen, bolen):
self.bolunen = bolunen
self.bolen = bolen
def kalan_hesabı(self):
return self.bolunen % self.bolen
Aynı class altında 2 adet fonksiyon tanımladık. Bu fonksiyonlardan birincisi __init__ fonksiyonudur. Bu fonksiyonun amacı, kendisine verilen parametreyi class çağırırken kullandığımız değişkenle birleştirmektir. __init__ fonksiyonu içerisinde bulunan self yazısı aslında class çağırırken kullandığımız değişkendir. Self yazısı genel Python yazısıdır. İsterseniz başka bir şey olarak tanımlayabilirsiniz. Ancak class altında bulunan diğer fonksiyonların da parametresini değiştirmelisiniz. Yani self yazan her değişkeni değiştirmelisiniz.
Yazdığımız bu modülü başka bir script’de çağırmak için önce bu script’i ilk_sinif.py olarak kaydedelim. Daha sonra aynı path’de bulunan yeni bir script açalım ve aşağıdaki kodu yazalım.
import ilk_sinif
sayi = ilk_sinif.kalan_bulma(200,15)
print(sayi.kalan_hesabı())
1. Satır: Burada import programımıza modül aktarmamızda yardımcı oluyor. ilk_sinif az önce yazdığımız script’in adı.
2. Satır: Bu satırda nesnemizi oluşturuyoruz. kalan_bulma, ilk_sinif script’inin altındaki bir sınıf olduğu için ilk_sinif.kalan_bulma diye çağırıyoruz. Dikkat edilirse kalan_bulma class’ımızı tanımlarken 3 farklı değişken alacağını belirtmiştik. Ama burada 2 değişken var. Çünkü kalan_bulma class’ımızın ilk parametresi self’di. Yani sayi değişkenin kendisi.
3. Satır: Bu satırda hesabı yapıyoruz.
Bu konuyu daha iyi anlamak için ilk yazdığımız script’i güncelleyelim.
class matematik_islemleri():
def __init__(self, sayi1, sayi2):
self.sayi1 = sayi1
self.sayi2 = sayi2
def kalan_hesabı(self):
return self.sayi1 % self.sayi2
def us_alma(self):
return self.sayi1**self.sayi2
Şimdi ikinci script’imize ufak bir ek yapalım.
import ilk_sinif
sayi = ilk_sinif.matematik_islemleri(200,15)
print(sayi.kalan_hesabı())
print(sayi.us_alma())
Son satırda yazılan sayi.us_alma() fonksiyonu kendisine parametre olarak verilen 1. sayının kendisiyle 2. sayı kez çarpımını geri döndürüyor.
Bu ders temel anlamda Python’ı öğrenme işlemini bitiriyoruz. Değinmediğim çok konu var; diğer veri tipleri, gömülü fonksiyonlar vb. Onların temel yapısı da diğer veri tipleri ve fonksiyonlar ile aynı. İşlenmemiş fonksiyonlara ve diğer veri tiplerine program yazarken değineceğiz. Bundan sonra programlar yazarak öğrendiklerimizi pekiştireceğiz. Sevgiler, saygılar sunarım.