top of page

Üyelik Paketlerinde 25% İndirim İçin Kodun : "welcome"

Python'da Nesne Yönelimli Programlama: Kavramlar ve Uygulamalar



Hands-on Mentor Kapsamlı Blog İçeriği
Hands-on Mentor Tutorials





Python'da Nesne Yönelimli Programlama Nedir?

Nesne Yönelimli Programlama (OOP), yazılım tasarımında kullanılan bir paradigmadır. OOP, verileri ve bu verilere yönelik işlemleri bir arada tutan nesneler (objects) etrafında yapılandırılır. Python, nesne yönelimli bir programlama dilidir ve sınıflar (classes) ve nesneler (objects) kullanarak OOP'nin temel prensiplerini destekler.


Temel Kavramlar


Sınıflar (Classes)

Sınıflar, nesnelerin yapı taşlarıdır. Bir sınıf, belirli bir türdeki nesnelerin özelliklerini (attributes) ve davranışlarını (methods) tanımlar. Sınıflar, nesneler için bir şablon olarak düşünülebilir.


Örnek:


class Araba:
    def __init__(self, marka, model, yil):
        self.marka = marka
        self.model = model
        self.yil = yil

    def bilgi_goster(self):
        print(f"{self.yil} {self.marka} {self.model}")


Nesneler (Objects)

Nesneler, sınıflardan oluşturulan örneklerdir. Bir nesne, sınıfın tüm özelliklerine ve yöntemlerine sahiptir.


Örnek:


araba1 = Araba("Toyota", "Corolla", 2020)
araba2 = Araba("Honda", "Civic", 2019)

araba1.bilgi_goster()  # Çıktı: 2020 Toyota Corolla
araba2.bilgi_goster()  # Çıktı: 2019 Honda Civic


init Metodu

init metodu, bir sınıfın kurucusu (constructor) olarak bilinir. Bir nesne oluşturulduğunda, init metodu otomatik olarak çağrılır ve nesnenin başlangıç durumunu ayarlar.


Örnek:


class Araba:
    def __init__(self, marka, model, yil):
        self.marka = marka
        self.model = model
        self.yil = yil


Özellikler (Attributes) ve Yöntemler (Methods)

Özellikler, nesnenin verilerini saklar. Yöntemler, nesnenin davranışlarını tanımlar. Bir sınıf içinde tanımlanan her fonksiyon bir yöntemdir.


Örnek:


class Araba:
    def __init__(self, marka, model, yil):
        self.marka = marka
        self.model = model
        self.yil = yil

    def bilgi_goster(self):
        print(f"{self.yil} {self.marka} {self.model}")

    def yas_hesapla(self, mevcut_yil):
        return mevcut_yil - self.yil


Kapsülleme (Encapsulation)

Kapsülleme, verilerin ve yöntemlerin bir arada tutulması ve dışarıdan erişimin sınırlandırılmasıdır. Python'da, özellikleri ve yöntemleri özel (private) yapmak için  veya _ kullanılır.


Örnek:


class Araba:
    def __init__(self, marka, model, yil):
        self.__marka = marka  # Özel özellik
        self.__model = model  # Özel özellik
        self.__yil = yil      # Özel özellik

    def bilgi_goster(self):
        print(f"{self.__yil} {self.__marka} {self.__model}")

araba1 = Araba("Toyota", "Corolla", 2020)
araba1.bilgi_goster()  # Çıktı: 2020 Toyota Corolla

# Erişim denemesi (başarısız)
print(araba1.__marka)  # Hata verir


Kalıtım (Inheritance)

Kalıtım, bir sınıfın başka bir sınıftan özellikleri ve yöntemleri devralmasını sağlar. Kalıtım, kodun yeniden kullanılabilirliğini artırır ve sınıflar arasında hiyerarşik bir yapı oluşturur.


Örnek:


class Tasit:
    def __init__(self, marka, model, yil):
        self.marka = marka
        self.model = model
        self.yil = yil

    def bilgi_goster(self):
        print(f"{self.yil} {self.marka} {self.model}")

class Araba(Tasit):
    def __init__(self, marka, model, yil, kapi_sayisi):
        super().__init__(marka, model, yil)
        self.kapi_sayisi = kapi_sayisi

    def bilgi_goster(self):
        super().bilgi_goster()
        print(f"Kapı sayısı: {self.kapi_sayisi}")

araba1 = Araba("Toyota", "Corolla", 2020, 4)
araba1.bilgi_goster()
# Çıktı:
# 2020 Toyota Corolla
# Kapı sayısı: 4


Çok Biçimlilik (Polymorphism)

Çok biçimlilik, aynı adı paylaşan farklı yöntemlerin farklı davranışlar sergilemesini sağlar. Bu, özellikle kalıtım ile birlikte kullanıldığında güçlü bir araçtır.


Örnek:


class Kus:
    def ses_cikar(self):
        print("Cik cik")

class Kedi:
    def ses_cikar(self):
        print("Miyav")

def sesleri_dinle(hayvan):
    hayvan.ses_cikar()

kus = Kus()
kedi = Kedi()

sesleri_dinle(kus)  # Çıktı: Cik cik
sesleri_dinle(kedi)  # Çıktı: Miyav


Abstraction (Soyutlama)

Soyutlama, karmaşıklığı azaltmak için gerekli detayları gizler ve sadece önemli özellikleri öne çıkarır. Python'da soyut sınıflar ve soyut yöntemler oluşturmak için abc modülü kullanılır.


Örnek:


from abc import ABC, abstractmethod

class Hayvan(ABC):
    @abstractmethod
    def ses_cikar(self):
        pass

class Kopek(Hayvan):
    def ses_cikar(self):
        print("Hav hav")

kopek = Kopek()
kopek.ses_cikar()  # Çıktı: Hav hav


OOP'nin Avantajları

  • Modülerlik: Kod, bağımsız modüller halinde organize edilir.

  • Yeniden Kullanılabilirlik: Kod parçaları tekrar kullanılabilir.

  • Bakım Kolaylığı: Kodu anlamak ve bakımını yapmak daha kolaydır.

  • Esneklik: Kod, daha kolay genişletilebilir ve değiştirilebilir.


OOP'nin Kullanım Alanları

Nesne yönelimli programlama, birçok yazılım geliştirme alanında geniş kullanım alanına sahiptir:

  • Oyun Geliştirme: Oyun nesnelerinin ve mantıklarının yönetimi.

  • Veri Tabanı Yönetimi: Veritabanı nesnelerinin ve işlemlerinin yönetimi.

  • Web Geliştirme: Web uygulamaları ve bileşenlerinin organizasyonu.

  • Mühendislik Uygulamaları: Kompleks sistemlerin modellenmesi ve simülasyonu.


Sonuç

Bu blog yazısında, Python'da nesne yönelimli programlamanın (OOP) temel kavramlarını ve uygulamalarını öğrendiniz. Sınıflar ve nesneler oluşturmayı, kapsülleme, kalıtım, çok biçimlilik ve soyutlama kavramlarını incelediniz. OOP, Python programlamada kodunuzu daha modüler, yeniden kullanılabilir ve bakımı kolay hale getirmenin güçlü bir yoludur.


 

Python temellerini atıp, veri analizi ve bilimi için yetkinlik kazanmak istiyorsanız, 1 aylık yoğun Python kampına hemen kayıt olabilirsiniz. ~40 saat canlı ders, ~50 adet kapsamlı proje, ~15 adet quiz ve sayısız kodlama egzersizinden oluşan, Finlandiya eğitim modellerinden esinlenilerek Helsinki'de geliştirilen interaktif ve pratik odaklı eğitim programına hemen göz atın !




Comments


Commenting has been turned off.
bottom of page