Press "Enter" to skip to content

Python Class

Yaşar SAFALI 2

Python Class

Bir önceki yazımızda Nesne Yönelimli Programlamaya giriş yaptık.Bu yazımızda sınıf (class) kavramına değineceğiz.Python Class Sınıflar programlama dillerinde önemli bir yer tutarlar.Nesnelerin özelliklerinin,davranışlarının tanımlandığı genel bir taslak veya şablon olarak tanımlanabilirler.Sınıflar nesnelere ait metotları,özellikleri,alanları,yapıcı metotları bünyesinde  barındırarak kendilerinden üretilen nesnelerin kullanmasını sağlarlar.Sınıfları kullanmanın en büyük avantajı kod tekrarının önüne geçmektir.Sınıflar sayesinde programlar parçalara bölünebilirler.Bu sayede okunabilirlik artar.Şimdi Python’da sınıf class tanımlamayı ve özelliklerini inceleyelim.

Class Tanımlamak:

Python’da class tanımlaması şu şekilde gerçekleşir.

class Muhendis:
    pass



veya

class Muhendis():
    pass

 

Class tanımlanırken parantez kullanıp kullanmamak programcının insiyatifine kalmıştır.

Sınıflara özellikler eklemek

Yukarıda tanımladığımız sınıfa ait herhangi bir nitelik bulunmamaktadır.Sınıfların kullanışlı olmasını sağlayan yapılar içerisinde bulunan özelliklerdir.

class Muhendis():
   adi="yazılımhanem"
   meslek="Bilgisayar Mühendisi"

Mühendis sınıfının artık adi ve meslek diye iki tane değişkeni mevcuttur.Aynı mantıkla fonksiyonlar da tanımlanabilir.Fonksiyon tanımlamaya henüz geçmeyeceğiz.Öncelikle bu sınıftaki değişkenlere erişmeyi bir sınıfı çağırmayı inceleyelim.

Bir  sınıftaki değişkenlere erişebilmenin iki farklı yolu vardır. İlk olarak Sınıf ismiyle erişebiliriz.

class Muhendis():
   adi="yazılımhanem"
   meslek="Bilgisayar Mühendisi"



print(Muhendis.adi)
print(Muhendis.meslek)

Output:

yazılımhanem
Bilgisayar Mühendisi

İkinci olarak nesne üreterek erişebiliriz.

class Muhendis():
   adi="yazılımhanem"
   meslek="Bilgisayar Mühendisi"
   
muhendis=Muhendis()

muhendis artık bizim Muhendis() sınıfından ürettiğimiz nesnemizdir.

Class içerisinde yer alan özelliklere nesneler sayesinde erişebiliriz.

class Muhendis():
    adi = "yazılımhanem"
    meslek = "Bilgisayar Mühendisi"


muhendis = Muhendis()
print(muhendis.adi)
print(muhendis.meslek)

Output:

yazılımhanem
Bilgisayar Mühendisi

 

İki farklı şekilde sınıfları çağırmayı öğrendik.Aralarındaki en temel fark bir değişkene(nesneye) atanarak çağırma işleminde mevcut sınıfın bütün özelliklerini taşıyan bir üye(nesne) oluşturulmasıdır.Silinene kadar kullanılabilmektedir.Oluşturulan nesne silinmek istendiğinde del() komutu kullanılır.

self Komutu:

Class içerisinde yer alan bütün fonksiyonların parametre olarak alması gerektiği bir yapıdır.Bir Class içerisinde yer alan fonksiyonlara,değişkenlere aynı class içerisinden erişebilmek için kullanılır.

class Muhendis():
    adi = "yazılımhanem"
    meslek = "Bilgisayar Mühendisi"
    def EkranaYaz(self):
        print(self.adi)
        print(self.meslek)

Sınıfların içerisinde fonksiyonların bulabileceğini söylemiştik.Self ifadesini anlatırken de örnek bir fonksiyon tanımlaması yaptık.Şimdi Mühendis sınıfına iki farklı fonksiyon ekleyelim. Oluşturulan nesne ile bu fonksiyonlara erişmeyi ve self komutu ile fonksiyon ve değişkene erişmeyi görelim.

class Muhendis():
    adi="yazılımhanem"
    meslek="Bilgisayar Mühendisi"
    maas=5000
    birimi="Bilgi İşlem"
    def EkranaYaz(self):
       print(self.adi)
       print(self.meslek)
       print(self.birimi)
       print(self.maas)
    def ZamYap(self,zammiktari):
        self.maas+=zammiktari
        self.EkranaYaz()
muhendis=Muhendis()
muhendis.EkranaYaz()
muhendis.ZamYap(500)

Output:

yazılımhanem
Bilgisayar Mühendisi
Bilgi İşlem
5000
yazılımhanem
Bilgisayar Mühendisi
Bilgi İşlem
5500

OOP prensiplerinden bir diğeride method overloading(Aşırı Yükleme)dir.Yani bir fonksiyonun aynı isimle birden fazla farklı parametreler için tanımlanmasıdır.Python’da bu yöntem direk olarak desteklenmez. Çünkü Python’da bir class içerisinde var olan bir fonksiyonla aynı isimde fonksiyon tanımlamak hata verir.O yüzden method overloading işlemi yapılmak istendiğinde fonksiyona parametreler varsayılan değeriyle tanımlanır.Bu sayede parametre verilmese bile fonksiyon çalışır.

Örnek:

class YazilimHanem:

    def EkranaYaz(self,isim=None):

        if isim==None:
            print("Paramtresiz Fonksiyon Çalıştı")
        else:
            print("Parametreli Fonksiyon Çalıştı",isim)

yz=YazilimHanem()
yz.EkranaYaz()
yz.EkranaYaz("Yazılım")

Output:

Paramtresiz Fonksiyon Çalıştı
Parametreli Fonksiyon Çalıştı Yazılım

 

Python’da Sınıf oluşturmak,Sınıflar üzerinde özellik ve fonksiyon olustumak,olusturulan sınıflardan nesne üretmek bu şekildedir.Son olarak sınıflara ait __init__ fonksiyonunu inceleyelim.

__init__() Fonksiyonu

Sınıflar çağrıldığı zaman yani o sınıftan bir nesne üretildiği zaman yapılacak işleri bünyesinde barındıran bir fonksiyondur.OOP’de bu tür fonksiyonlara yapıcı,inşa edici fonksiyonlar denir.

class Muhendis():
    adi="yazılımhanem"
    meslek="Bilgisayar Mühendisi"
    maas=5000
    birimi="Bilgi İşlem"
    def EkranaYaz(self):
       print(self.adi)
       print(self.meslek)
       print(self.birimi)
       print(self.maas)
    def ZamYap(self,zammiktari):
        self.maas+=zammiktari
        self.EkranaYaz()
    def __init__(self):
        print("Mühendis Sınıfı Çağrıldı")
        
muhendis=Muhendis()

Output:

Mühendis Sınıfı Çağrıldı

 

Parametreli veya parametresiz kullanımları mevcuttur.Eğer __init__ fonksiyonu parametreli oluşturulmuşsa sınıftan nesne üretilirken o parametreler girilmelidir.

class Muhendis():
    adi="yazılımhanem"
    meslek="Bilgisayar Mühendisi"
    maas=5000
    birimi="Bilgi İşlem"
    def EkranaYaz(self):
       print(self.adi)
       print(self.meslek)
       print(self.birimi)
       print(self.maas)
    def ZamYap(self,zammiktari):
        self.maas+=zammiktari
        self.EkranaYaz()
    def __init__(self,isim,meslek):
        print("Mühendis Sınıfı Çağrıldı")
        self.meslek=meslek
        self.adi=isim

muhendis=Muhendis("YazılımHanem","Bilgisayar Mühendisi")

Output:

Mühendis Sınıfı Çağrıldı

Sınıflar ile ilgili anlatacaklarımız bu kadar.Bir sonraki yazımızda görüşmek dileğiyle.

 

Amed escort

taksim escort

beylikdüzü escort

  1. 2 tane farklı class olsa, birinden diğerini nasıl çağırabiliriz?

    • Yaşar SAFALI Yaşar SAFALI

      Merhaba sınıflar çağırılırken nesne oluşturman yeterlidir.nesneadi=Sınıf() şeklinde .Örnek olarak class2 isimli bir sınıfı class1 isimli sınıfta herhangi bir metot içerisinde çağırmak için aşağıdaki örneğe bakabilirsin.
      class class2:

      def cagirclass2(self):
      print(“Class2 Çağrıldı”)

      class class1:

      def cagir(self):

      c2=class2()
      c2.cagirclass2()

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

bakırköy escort afyon escort afyon escort ağrı escort ardahan escort artvin escort aksaray escort amasya escort antalya escort alanya escort aydın escort balıkesir escort bandırma escort bayburt escort bartın escort batman escort bitlis escort bingöl escort bodrum escort bolu escort bursa escort çanakkale escort çerkezköy escort çorum escort düzce escort çeşme escort diyarbakır escort edirne escort erzincan escort erzurum escort erzurum escort elazığ escort eskişehir escort gaziantep escort giresun escort gümüşhane escort hatay escort hatay escort hakkari escort içel escort ığdır escort ısparta escort kars escort maraş escort kayseri escort karabük escort kıbrıs escort kırıkkale escort kırklareli escort kilis escort kırşehir escort konya escort kuşadası escort kütahya escort manisa escort manavgat escort marmaris escort mardin escort malatya escort mersin escort muğla escort muş escort nevşehir escort niğde escort ordu escort osmaniye escort rize escort samsun escort sakarya escort seyhan escort siirt escort sivas escort sinop escort şırnak escort şırnak escort tekirdağ escort trabzon escort tokat escort tunceli escort urfa escort uşak escort van escort yalova escort yozgat escort zonguldak escort izmit escort izmit escort izmit escort istanbul escort avcılar escort esenyurt escort mecidiyeköy escort şişli escort beylikdüzü escort halkalı escort kadıköy escort pendik escort istanbul escort kurtköy escort pendik escort beylikdüzü escort esenyurt escort escort bayan istanbul escort bayan escort escort bayan