Python'da OOP Kavramları Üzerine Eksiksiz Bir Kılavuz

Yayınlanan: 2020-10-22

Nesneye Yönelik Programlama veya OOP, bir süredir yazılım dünyasının ayrılmaz bir parçası olmuştur. Belli bir düzeyde özgürlük sunan ve geliştirici için programlama başarılarını artıran mükemmel bir programlama paradigmasıdır.

Her geliştiricinin bilmesi gereken bazı temel kavramlar ve ilkeler vardır. Bu modeli kullanarak bir uygulama geliştirmek için öncülleri yönlendirirler.

Burada, Python'daki bazı önemli ancak temel OOP kavramlarına bir göz atacağız . Bu kavramlar, programcıları daha iyi sonuçlar elde etmeye ve uygulamalarını zenginleştirici bir şekilde modellemeye yönlendirir.

İçindekiler

Nesne Yönelimli Programlama Nedir?

Deneyimsiz olanlar için, indüksiyonumuza başlayacağımız yer burasıdır. Nasıl çözebileceğimize dair daha derin bir anlayış elde etmek için OOP'leri bir meslekten olmayan kişi gibi anlayalım.

Bu programlama yapısında, benzer özelliklere veya davranışlara sahip şeyleri tek bir nesnede kolayca birleştirebilirsiniz. Demografiden bahsediyorsanız, bu, bu programlama modeli için tek bir nesne haline gelir. Benzer şekilde, yapılması gereken eylemlerden bahsediyorsanız, o zaman bu başka bir nesne haline gelir.

Hepsi ham veri içeren nesnelerdir. Yazılım çözümünüz bu nesneleri birlikte nihai hedefi gerçekleştirecek şekilde programlayacaktır. Bu nesneler, sizin tarafınızdan programlandığı gibi birkaç eylemi birlikte gerçekleştirecek ve sonucu verecektir.

Bunu anlamanıza yardımcı olacak mükemmel bir örnek, bir e-posta programı olacaktır.

Alıcının adı ve konusu gibi e-posta içeriğini içeren bir nesneniz olduğunu varsayalım. Eki detaylandıran ve e-postayı gönderen ikinci bir nesne var. Bu nesneleri otomatik olarak birleştirecek, tam yazılı bir e-postanın istenen eklerle hazır olmasını sağlayacak ve alıcıya gönderecek bir program tasarlayacaksınız.

OOP böyle çalışır. Ancak, bazı kavramlar bunu harekete geçirir. Şimdi bu kavramlara ve nasıl çalıştıklarına kısaca bir göz atalım.

Okuyun: Python Nesne Yönelimli Bir Dil mi?

Sınıf Nasıl Tanımlanır?

Sınıf, her nesneyi tanımlayan şeydir ve Python'daki OOP kavramlarının önemli bir yönüdür . Diyelim ki gözler, kulaklar, ağız ve burun gibi dört nesneniz var. Bunlar, sınıf olan bir yüzün parçalarıdır.

Bir sınıfın nasıl tanımlanacağı ile başlayalım.

Diyelim ki e-posta adlı bir sınıftan bahsediyorsunuz.

Sınıf E-postası:

geçmek

Sınıf böyle tanımlanır. Kodu bir derleyicide çalıştırdığınızda herhangi bir hata çıkmaması için “pass”ı kullanın.

Yalnızca sınıfı tanımlamak size pek yardımcı olmayabilir. Çekici ve kodu faydalı kılmak için bazı özellikler eklemeniz gerekir. Bu nedenle, sınıfınıza nesneler eklemeniz gerekir.

._init_() yöntemi, bir sınıf içindeki özellikleri tanımlarken yararlı olacağını kanıtlayacak olan yöntemdir.

Bu, sınıf için her yeni nesne oluşturduğunuzda, bu yöntemin parametreleri başlangıç ​​durumuna getirmesini ve böylece her seferinde yeni bir nesne başlatmasını sağlayacaktır.

Bu yöntemin ilk parametresi, ona birden çok parametre atasanız bile her zaman self olacaktır.

Peki, bu durumda ne olur? Diyelim ki yeni bir sınıf oluşturdunuz. Örnek self parametresine aktarılır. Sonuç olarak, ._init_() tanımlanan nesneye yeni özellikler atayabilir.

Hala nasıl kullanılacağını düşünüyorsanız, bir örnek üzerinden anlayalım.

Sınıf E-postası:

def ._init_(kendi, ad, alıcı, adres):

self.name = isim

self.alıcı = alıcı

self.adres = adres

Daha iyi anlamak için bu kodu parçalayalım.

Yukarıdaki kodda ifade edilen girinti kritiktir. Python'da OOP'leri kullanarak programınızı yazarken de aynısını yapmalısınız . Yukarıdaki koddaki self değişkeni anlayalım.

self.name, name adı verilen bir öznitelik üretir. name parametresinin değeri bu özniteliğe atanır. Benzer şekilde, diğer-kendi değişkenleri için de nitelikler ve değerler atanır.

Bu nitelikler örnek olarak bilinir. Belirli bir örnekte bahsedilen her özelliğin değerini belirtmeniz gerekecektir. Diyelim ki iki tür e-posta var - karşılama ve besleme. E-posta alıcısı her iki durumda da farklılık gösterecektir (hoş geldiniz e-postaları ve bilgilendirme e-postaları).

Sınıf nitelikleri ise farklıdır; tüm sınıf örnekleri için aynı değeri içereceklerdir. Örneğin, bunların hepsi gelen e-postalardır. Bu, onlar için tanımlayabileceğiniz sınıf niteliğidir.

Sınıf E-postası:

#Sınıf Özelliği

E-posta: "Gelen E-postalar"

def ._init_(kendi, ad, alıcı, adres):

self.name = isim

self.alıcı = alıcı

self.adres = adres

Şu konularda bilgi edinin: Java Projeleri Nasıl Kodlanır, Derlenir ve Çalıştırılır

Sınıf ve Örnek Değişkenlerini Anlama

Python'da OOP'leri daha iyi anlamak için iki örnek değişkenin yanı sıra bir sınıf niteliği oluşturduğumuz yukarıdaki örneği ele alalım .

Sınıf E-postası:

E-posta: "Gelen E-postalar"

def ._init_(kendi, ad, alıcı, adres):

self.name = isim

self.alıcı = alıcı

self.adres = adres

Şimdi bu sınıf içindeki nesneleri somutlaştırmaktan bahsedelim. Bu nesnelerin her biri için değerler ayarlamanız gerekir. Bu, kılavuzun önceki bölümünde tartışıldığı gibi, her nesne için başlangıç ​​değeri olacaktır. Bu nesnelere değer atamazsanız, bir TypeError alırsınız.

>>> E-posta()

Geri izleme (en son arama en son):

Dosya "<pyshell#6>", satır 1, <module> içinde

E-posta ()

TypeError: __init__() 4 konumsal bağımsız değişken eksik: 'ad', 'alıcı' ve 'adres'

Sınıf adından hemen sonra değer ekleyebiliriz.

Besleme E-postası = E-posta (Nurture, David, [email protected])

Hoş Geldiniz E-postası = E-posta (Hoş Geldiniz, Daisy, [email protected])

Yukarıdaki kodla, bir beslenme e-postası ve bir hoş geldiniz e-postası için iki örnek oluşturduk. Yukarıdaki kod için sınıf örneğinden sonra tanımlanan __init__() öğesini kontrol edelim. Self dahil dört parametre görüyoruz. Ancak kendisi için herhangi bir değişkenden bahsedilmemiştir. Anlayalım neden?

Bu nedenle, bir sınıf içinde yeni bir nesne oluşturduğunuzda, sınıfın örneğini oluşturmuş olursunuz. Bunu yaparken değişkenin saklanacağı bir hafıza adresi atamış olacaksınız. Yeni bir nesneyi başlattığınız anda, Python otomatik olarak bir örnek oluşturacak ve bu, .__init__() yöntemindeki ilk değişkene iletilecektir. Sonuç olarak bu yöntemde benlik ortadan kalkar.

Sınıf değişkeni ile oluşturduğunuz her örneğin kendisiyle ilişkilendirilmiş bir değişken veya değere sahip olmasını sağlayabilirsiniz. Bu, daha hızlı ve daha kolay sonuçlar ve dolayısıyla programlamanız için daha güvenli sonuçlar sağlayacaktır.

Ayrıca Okuyun: Yeni Başlayanlar ve Deneyimliler İçin 47 OOPS Mülakat Sorusu ve Yanıtını Okumalısınız

Özetliyor

Burada Python OOPs programlama modelini kullanarak bir sınıf, nesne ve yöntem oluşturmanın çeşitli yönlerini anladık. Bunun dışında, Python'da OOP programlamanın özü olan örnekler ve örnekleme gibi kavramları da anladık. Daha sonra, kalıtım, polimorfizm, soyutlama ve kapsülleme gibi bu örnekleri ve sınıfları yöneten ilkeleri anlamanız gerekecektir. Bunlar, uygulamanızı ve sonuçlarını yönlendiren Python'daki temel OOP kavramlarıdır .

Python hunisinde daha ileri gitmek için temel bilgilerinizin net ve köklü olması gerekir. Öyleyse, sınıflara dalın ve nasıl çalıştığını anlayın. Bu değişkenlerle biraz oynayın ve uygulamanızı kurmadan önce sonuçlarını anlayın.

Hızlı teknolojik gelişmelerin önünde olmak için veri bilimi öğrenmeyi merak ediyorsanız, upGrad & IIIT-B'nin Veri Biliminde PG Diplomasına göz atın ve gelecek için kendinizi geliştirin.

Neden OOP kullanıyoruz?

Nesneye Yönelik Programlama (OOP), üzerinde işlem yapılabilen, manipüle edilebilen ve paketlenebilen nitelikleri ve davranışlarıyla yeniden kullanılabilir 'nesnelerin' geliştirilmesine dayanan bir programlama çerçevesidir. Python, hem OOP'yi hem de diğer çerçeveleri destekler. Python'da sınıfları kullanarak OOP elde edersiniz. Python, nesne yönelimli programlamanın olağan özelliklerinin tümüne sahiptir. Geliştiriciler Python uygulamalarında OOP'yi kullanır çünkü bu, kodları yeniden kullanılabilir hale getirir ve daha büyük programlarla çalışmayı kolaylaştırır. Bir sınıf yalnızca bir kez tanımlanabildiğinden ve birden çok kez kullanılabildiğinden, OOP sistemleri kodu çoğaltmanızı engeller. Sonuç olarak, OOP 'Kendini Tekrar Etme' (DRY) konseptini takip etmeyi kolaylaştırır.

Sınıf nedir?

Python sınıfı, yeni bir nesne oluşturmak için bir plana benzer. Nesne, kodlama sırasında değiştirmek veya değiştirmek istediğiniz herhangi bir şeydir. Bir değişken tanımladığımızda gerçekleşen bir sınıf nesnesini başlattığımızda, sıfırdan yeni bir nesne oluşturulur. Sınıf nesneleri gerektiği kadar tekrar kullanılabilir. Her öğeyi oluşturmak için bir sınıf kullanılır. Bunu belirli bir tür öğenin planı olarak kabul edin. Sınıflar, o tür nesne için gerekli olan nitelikleri listeler, ancak bunlara bir değer atamaz. Sınıflar, aynı türdeki tüm nesneler tarafından paylaşılan yöntemleri de belirtir.

Örnek değişken nedir?

Bir sınıf örneği, Python'da örnek değişkenlere sahiptir. Bir örnek değişkenin değeri, bağlantılı olduğu örneğe göre değişebilir. Bu, kendisine atanan yalnızca bir değere sahip olabilen bir sınıf değişkeninden farklıdır. Örnek değişkenleri bir sınıf yöntemi içinde bildirilir. Bir sınıf tanımladığımızda, örnek değişkenlere değerler atayabiliriz. Sınıfı bildirdiğimizde, atamak istediğimiz değerleri argüman olarak sağlarız.