Rehber Python ile OPP

Bu konuyu okuyanlar

Emnn

Jet Sesi, Özgürlüğün Sesidir!
Emektar
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:
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
@classmethod: Sınıf değişkenlerine erişmek ve bunları değiştirmek için kullanılır.
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
 

Iran Sarını

Öğrenci
Katılım
2 Şubat 2023
Mesajlar
4
Reaksiyon puanı
0
Puanları
1
Yaş
29
Doğru anladıysam, bu forumda kodu anlayan birçok insan var. Sipariş vermek için bir site yapıyorum. Ve bu benim ilk karmaşık siparişim. Müşterim benden sitenin ana sayfasında bir diyalog kutusu yapmamı istedi. Ve bunu nasıl yapacağımı bilmiyorum. Bunu anlayan var mı? Ana amaç, sitenin ana sayfası aracılığıyla yöneticiyle iletişim kurmaktır. Yardım :sob:
 

Emnn

Jet Sesi, Özgürlüğün Sesidir!
Emektar
Katılım
3 Mayıs 2021
Mesajlar
2,207
Çözümler
8
Reaksiyon puanı
1,848
Puanları
113
Hangi programlama diline hakimsiniz, tam olarak amacınız nedir?
Doğru anladıysam, bu forumda kodu anlayan birçok insan var. Sipariş vermek için bir site yapıyorum. Ve bu benim ilk karmaşık siparişim. Müşterim benden sitenin ana sayfasında bir diyalog kutusu yapmamı istedi. Ve bunu nasıl yapacağımı bilmiyorum. Bunu anlayan var mı? Ana amaç, sitenin ana sayfası aracılığıyla yöneticiyle iletişim kurmaktır. Yardım :sob:
 

Son mesajlar

Üst