Python Programlama - Nesne Tabanlı Programlama

Python Nesne Tabanlı Programlama

Programlama

Yapılan araştırmalar ve duyumlar göz önüne alındığında, iyi bir siber güvenlik uzmanının Python bilmesi şart. Yada veri bilimi ile uğraşan bir insanın. Python özellikle siber güvenlik ile uğraşan / uğraşmak isteyen bireyler için biçilmiş kaftan. Siber saldırılar yapılacağı zaman çoğunlukla Python ile yazılmış araçlar kullanılıyor ve Python ile hacking araçları yazılıyor.

Bu yazımızda Python nesne tabanlı programlamaya ufaktan bir giriş yapıyor olacağız. İlk olarak sormamız gereken şey “Nesneye yönelik programlama nedir?” olacaktır. Python nesne tabanlı programlama yaparken adından da anlayacağınız üzere nesneler ile çalışır ve onların özelliklerini kullanırız. Her nesnenin kendine ait özellikler vardır. Örnek vermek gerekirse bir araba nesnesinin rengi, modeli kaç kilometre yol yaptığı ve vites tipi gibi spesifik özellikleri var. Aynı şekilde Python programlama yaparken oluşturduğumuz nesnelerin de özellikleri vardır. Şimdi daha fazla uzatmadan başlayalım…

Python nesne tabanlı programlama yaparken sınıflardan yararlanırız. Sınıflar vasıtasıyla objeler yani nesneler oluşturur ve onların özelliklerini kullanabiliriz. Örnek vermek gerekirse, programımızda araba modellerine ihtiyacımız olsun. Farklı araba modelleri için farklı fonksiyonlar yazarak da nesneye yönelmeden bu ihtiyacımızı karşılayabiliriz. Ama nesneye yönelik programlama yaparak, bu sorunumuzu çok daha pratik bir yöntemle çözebiliriz. Bir araba nesnesi oluştururuz ve bu araba nesnesine “Araba” sınıfından özellikler veririz.

araba = Araba()

Yukarıda araba diye bir nesne oluşturduk ve araba nesnesine Araba sınıfından özellikler verdik. Artık araba nesnesi Araba sınıfının özelliklerini kullanabilecek.

Fazla kafa karıştırmadan devam edelim, ilerleyen kısımlarda bu özelliklere değineceğiz.

Class Tanımlama – Python Class

Python’da sınıf yani class tanımlamak oldukça basittir:

class Araba:
    pass

Yukarıdaki kod bloğunda bir sınıf tanımladık, sınıf tanımlarken Python 2’de parantez kullanılırken 3 de parantez kullanma zorunluluğu yoktur, tabi isterseniz yine de kullanma özgürlüğünüz bulunmakta. Şundan bahsediyoruz:

class Araba: #Python 3'deki class tanımlama işlemi
    pass

class Araba(): #Python 2'deki class tanımlama işlemi
    pass

Class tanımlama işlemi bu kadar. Şimdi Python’un self parametresini ve init fonksiyonunu inceleyelim.

Python Init Fonksiyonu

Python’da init fonksiyonu classlar içerisindeki varsayılan fonksiyondur. diğer çoğu dilde olan main fonksiyonu ile aynı işlevi görmektedir, tek farkı siz __init__ fonksiyonunu tanımlamak zorunda değilsiniz. Bu fonksiyon olmadan da yazdığınız class çalışacaktır.

Init fonksiyonu, yapıcı fonksiyondur. Eğer classınız içerisinde bir init fonksiyonu yazdıysanız siz çağırmasanız bile otomatik olarak o fonksiyon çağrılacaktır. Ama diğer fonksiyonları çalıştırmak için çağırmanız gerekmektedir.

class Araba:
    def __init__(self):
    print("Araba sınıfından init fonksiyonu çalıştı")
Araba()

Yukarıdaki kod bloğunda Araba sınıfını çağırdık ve otomatik olarak __init__ fonksiyonunun da çağırıldığını gördük.

Çıktı:

Araba sınıfından init fonksiyonu çalıştı

Şimdi kafanıza takılabilecek olan bir diğer husus “self” parametresine geçelim.

Python Self Parametresi

Pythonda classlar içerisinde yazdığımız fonksiyonların tamamı bu parametreyi almak zorundadırlar. Self parametresi, class içerisinde tanımladığımız değişkenlere, yine class içerisinde tanımladığımız fonksiyonlardan erişebilmemiz için kullanılır.

class Araba:
    def __init__(self):
        print("Araba sınıfı çağırıldı")
        self.marka = "Honda"
        self.model = "Civic"
        self.yıl = 2018

    def ekranaYaz(self):
        print(self.marka, self.model, self.yıl) 
araba = Araba()   #Araba sınıfından bir "araba" nesnesi oluşturduk
araba.ekranaYaz()  #Araba sınıfı içerisindeki ekranaYaz fonksiyonunu çağırdık

Yukarıda Araba classının özelliklerini __init__ fonksiyonu içerisinde tanımladık ve ekranaYaz fonksiyonu ile bu özellikleri ekrana yazdırdık.

Çıktı:

Araba sınıfı çağırıldı
Hondo Civic 2018

Bu yazıda Python nesne tabanlı programlamaya, class oluşturmaya, __init__ fonksiyonuna ve self parametresine değindik. İlerleyen yazılarda nesneye yönelimli programlamanın daha da derinlerine iniyor olacağız.

Kaynaklar:                                                                 
https://www.w3schools.com/python/python_classes.asp          https://www.geeksforgeeks.org/python-call-function-from-another-function/           

2 comments

Bir cevap yazın