Python'da sınıf kavramı

Ali Orhun Akkirman - Aug 26 '20 - - Dev Community

Özellikle nesne yönelimli programlama geliştirilirken en önemli kavramlardan birisi sınıf(class) olarak düşünülebilinir.

Python üzerinde sınıf kavramından bahsedeceksek özet olarak fonksiyonlar yerine yöntem(method), değişken yerine de nitelik(attribute) kullanacağınızı düşünebilirsiniz.

Sınıf kavramını bir çok nesne yönelimli programlama kitabında bulabilirsiniz fakat bu yazımızda Python üzerinde basit bir örneği üzerinden anlatılmaya çalışılacak.

Basit değişken nedir?

Python üzerinde herhangi bir basit şekilde aşağıdaki yöntemlerle sayı ve yazı şeklinde iki tip değişken tanımlayabiliyorsunuz:

ad="ali veli"
numara=12
Enter fullscreen mode Exit fullscreen mode

Basit fonksiyon nedir?

Yine python üzerinde basitçe bir fonksiyon tanımlamak için aşağıdaki gibi kullanım sağlanabilmektedir:

def adinNe(isim):
    return("adım "+isim)
Enter fullscreen mode Exit fullscreen mode

Peki yöntem ve nitelik nedir?

Python üzerinde sınıf tanımlayarak aşağıdaki gibi yöntem ve nitelikler tanımlayabilirsiniz:

class personel:
    tipi="insan"
    def __init__(self,ad,no):
        self.ad=ad
        self.no=no
    def adinNe(self):
        return("ad: "+self.ad)
    def numaraNe(self):
        return("no: "+str(self.no))
Enter fullscreen mode Exit fullscreen mode

init yöntemi

Bu tanımlamalarda en farklı gördüğümüz kısım __init__ isimli yöntem(method) olacaktır. Bu yöntem özetle sınıfın tanımlanması, tanımlanırken neler yapılması gerektiğini anlatır. Yani birazdan nesne oluştururken kullanılacak yöntem tam olarak burasıdır.

self yapısı nedir?

Sınıfın içerisindeki herhangi bir nesnenin, "global" bir yapı kazanması yani bulunduğu yapının bir üst katmanında da kullanılabilmesini sağlayan yapıdır.

Yukarıdaki örneğimizde init yönteminde dışarıdan aldığımız 2 değişkeni, içeride çeşitli yöntemlerin içinde de kullanabilmek için "self" yapısı kullanılmıştır. Eğer adinNe ve numaraNe yöntemlerinde self kullanılmaadan değişkenler kullanılsaydı bu değişkenler diğer yöntemlerde kullanılamazdı.

Sınıfı kullanma ve nesne oluşturma

Python üzerinde sınıfı kullanarak birden fazla nesne oluşturmak için aşağıdaki gibi örnek yapabilirsiniz:

kisi1=personel("ali",101)
kisi2=personel("veli",102)
kisi3=personel("zeki",103)
Enter fullscreen mode Exit fullscreen mode

Nesnedeki yöntem ve nitelikleri kullanma

Python üzerinde oluşturulan nesnelerdeki nitelik ve yöntemleri basitçe kullanmak için aşağıdaki örnekleri kullanabilirsiniz. Ve bu örnekte aslında kisi1 nesnesinde tanımladığınız yöntemlerle ad ve numara ayrı ayrı ekrana yazdırabilirsiniz:

print(kisi1.adinNe())
print(kisi1.numaraNe())
Enter fullscreen mode Exit fullscreen mode

Ayrıca herhangi bir nitelik kullanmak istediğiniz de aşağıdaki gibi çağırabilirsiniz:

print(kisi1.tipi)
Enter fullscreen mode Exit fullscreen mode

Özet

Özet olarak temel sınıf bileşenlerini anlatmak istedim. Umarım faydalı bir içerik olmuştur ve kullanılmasında yardımcı olur.


Tempus fugit

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Terabox Video Player