- Katılım
- 3 Mayıs 2021
- Mesajlar
- 2,207
- Çözümler
- 8
- Reaksiyon puanı
- 1,848
- Puanları
- 113
Merhaba bugün Python ile Nesne Yönelimli Programalama (OOP) paradigmasından söz edeceğim.
Öncelikle OOP'nin ne olduğunu ChatCPT'den dinleyelim: "Nesne yönelimli programlama (NYP), yazılım geliştirme sürecinde kullanılan bir programlama paradigmadır. Bu paradigmada, programlar nesneler olarak adlandırılan yapısal birimlerin bir araya gelmesiyle oluşturulur. Nesneler, verileri (özellikler) ve bu veriler üzerinde işlem yapabilen işlevleri (metodlar) içeren birimlerdir."
Python Class Yapısından Söz Edelim:
Python'da "Class" yazabilmek için en basit anlamda aşağıdaki şablon kullanılır. Pythonda classların "constructor" metodları Python özel metodlarından olan "__init__" yapıcı metodudur. "self" parametresi classın kendisini temsil eder, "self" parametresi alışılmış bir yazımdır başka isimlerde kullanabilirsiniz.
Python Classdan Nesne Türetme:
Python OPP Temel Kavramlar:
Python'da nesneler parametre alabilirler. Parametre alması için "init" metodumuzun içerisine parametreleri ekleyerek, giriş yapılan parametreleri "self" parametresinde tutuyoruz. Bir sınıftan nesne oluştururken parametre alan bir sınıf ise parametreleri sağlıyoruz. Oluşturduğumuz nesnenin özelliklerine ve metotlarına erişmek için nesne adından sonra "." operatörünü kullanırız:
Python OPP Kalıtım Konusu:
Pythonda kalıtım yapmak için
Python OPP Kalıtım Konusu ve Parametreler:
Kalıtım ile oluşturulmuş sınıfların parametre ile çalışması:
@classmethod ve @staticmethod yöntemleri:
@staticmethod: Statik metodlar bağımsız işleri gerçekleştirmek için kullanılırlar. Sınıfrın durumu ve nesnelerle ilgilenmezler bu yüzden parametre almazlar. Doğrudan çağırılabilirler.
@classmethod: Sınıf değişkenlerine erişmek ve bunları değiştirmek için kullanılır.
Python OPP Veri Gizleme (getter and setter):
Getter ve setter metodlarının kullanılması, veri öğelerine erişim ve değişiklik yapılırken belirli kurallar uygulanmasını sağlar.
Github Adresim: Eminkrkt - Overview
Öncelikle OOP'nin ne olduğunu ChatCPT'den dinleyelim: "Nesne yönelimli programlama (NYP), yazılım geliştirme sürecinde kullanılan bir programlama paradigmadır. Bu paradigmada, programlar nesneler olarak adlandırılan yapısal birimlerin bir araya gelmesiyle oluşturulur. Nesneler, verileri (özellikler) ve bu veriler üzerinde işlem yapabilen işlevleri (metodlar) içeren birimlerdir."
Python Class Yapısından Söz Edelim:
Python'da "Class" yazabilmek için en basit anlamda aşağıdaki şablon kullanılır. Pythonda classların "constructor" metodları Python özel metodlarından olan "__init__" yapıcı metodudur. "self" parametresi classın kendisini temsil eder, "self" parametresi alışılmış bir yazımdır başka isimlerde kullanabilirsiniz.
Python:
class araba():
def __init__(self):
print("Bu bir yapıcı methottur.")
Python Classdan Nesne Türetme:
Python:
araba1 = araba()
Python OPP Temel Kavramlar:
Python'da nesneler parametre alabilirler. Parametre alması için "init" metodumuzun içerisine parametreleri ekleyerek, giriş yapılan parametreleri "self" parametresinde tutuyoruz. Bir sınıftan nesne oluştururken parametre alan bir sınıf ise parametreleri sağlıyoruz. Oluşturduğumuz nesnenin özelliklerine ve metotlarına erişmek için nesne adından sonra "." operatörünü kullanırız:
Python:
class araba():
def __init__(self, renk, fiyat, model):
self.fiyat = fiyat
self.renk= renk
self.model = model
def arabaBetimlemeleri(self):
print(f"Araba modeli: {self.model}, Araba rengi: {self.renk}, Araba fiyatı: {self.fiyat}")
araba1 = araba("Kırmızı", 50.000, "Togg")
araba1.arabaBetimlemeleri()
Python OPP Kalıtım Konusu:
Pythonda kalıtım yapmak için
class altSınıf(kalıtımYapılacakClass):
söz dizilimi kullanılır. Kalıtım ile oluşturulan sınıflardan kalıtım yapılan sınıflara erişmek için Python özel fonksiyonlarından super()
kullanılır:
Python:
class üst():
def __init__(self):
self.ozellik = "UstSinif özelliği"
def üstMetod(self):
print("Üst Sınıf metodu")
class altSınıf(üst):
def __init__(self):
super().__init__(self)
self.ozellik = "Kalıtım ile oluşturulan class özelliği"
def altMetod(self):
print("Alt Sınıf metodu") # Çıktısı "Alt Sınıf metodu" olur.
def üstSınıfınMetodu(self):
super().üstMetod() # Çıktısı "Üst Sınıf metodu" olur.
Python OPP Kalıtım Konusu ve Parametreler:
Kalıtım ile oluşturulmuş sınıfların parametre ile çalışması:
Python:
class kisi():
def __init__(self, ad, soyad):
self.ad = ad
self.soyad = soyad
def kendiniTanit(self):
print(f"Adı: {self.ad}, Soyadı: {self.soyad}")
class personel(kisi):
def __init__(self, ad, soyad, maas, meslek):
super().__init__(ad, soyad)
self.maas = maas
self.meslek = meslek
def isiTanıt(self):
print(f"Adı: {self.ad}, Soyadı: {self.soyad}, İşi: {self.meslek}, Maaşı: {self.maas}")
kisi1 = kisi("Emin", "Korkut")
kisi1.kendiniTanit() # Çıktı: Adı: Emin, Soyadı: Korkut
personel1 = personel("Emo", "Kork", 1000, "Yazılımcı")
personel1.isiTanıt() # Çıktı: Adı: Emo, Soyadı: Kork, İşi: Yazılımcı, Maaşı: 1000
@classmethod ve @staticmethod yöntemleri:
@staticmethod: Statik metodlar bağımsız işleri gerçekleştirmek için kullanılırlar. Sınıfrın durumu ve nesnelerle ilgilenmezler bu yüzden parametre almazlar. Doğrudan çağırılabilirler.
Python:
class matHesaplar():
@staticmethod
def alan(x, y):
return x * y
kareAlan = matHesaplar.alan(5,5)
print(kareAlan) # Çıktı: 25
Python:
class matHesaplar():
Pi = 3.14
@classmethod
def cevre(cls ,yarıcap):
return cls.Pi * yarıcap ** 2
daireCevre = matHesaplar.cevre(5)
print(daireCevre) # Çıktı: 78.5
Python OPP Veri Gizleme (getter and setter):
Getter ve setter metodlarının kullanılması, veri öğelerine erişim ve değişiklik yapılırken belirli kurallar uygulanmasını sağlar.
Python:
class kisi():
def getAd(self):
return self.Ad
def getSoyad(self):
return self.Soyad
def setAd(self, ad):
self.Ad = ad
def setSoyad(self, soyad):
self.Soyad = soyad
Github Adresim: Eminkrkt - Overview