Python'da Nesne Yönelimli Programlama Kavramı
Yayınlanan: 2020-12-01Nesneye Yönelik, işlevler ve mantık yerine sınıflar ve nesneler kavramını izleyen bir programlama paradigmasıdır. Kodu, kodun okunabilirliğini ve sürdürülebilirliğini artıracak şekilde organize eden süslü kodlama yöntemi olarak da bilinir. OOP kavramı, programlamada önemli bir konudur ve Veri Biliminde çeşitli görevler için yeniden kullanılabilir modüller oluşturmaya yardımcı olur.
Bu, temel modelin özel katmanlar eklemek için yeniden kullanıldığı Pytorch gibi çeşitli kitaplıkları kullanarak Derin öğrenme modelleri oluştururken genellikle bir ön koşuldur. Bu kavramın ne öğrettiğini ve bunun pratik kullanım durumlarında nasıl uygulanacağını keşfedelim.
İçindekiler
OOP kavramı nedir?
Herhangi bir markada olabilen bir akıllı telefon düşünün, ancak hepsi arasında çeşitli ortak şeyler var. Hepsinin ekranları, hoparlörleri, düğmeleri var ve yazılım düzeyinde neredeyse hepsi android destekli. Şimdi her şirketin, donanım bileşenlerinin çoğunu kontrol eden çekirdeğin bile yazılımlarını sıfırdan yaptığı bir durumu düşünün.
Bu, sıkıcı ve pahalı bir süreç haline gelecek ve bu nedenle cihazların fiyatını artıracaktır. Ya herhangi bir üretici tarafından gereksinimlerine göre zaman içinde değiştirilebilecek soyut veya genelleştirilmiş bir model varsa? Bu kavram, kodun farklı erişim yöntemlerine sahip sınıflarda yapılandırıldığı bu sınıf tabanlı yöntemi yakalamaya çalışır.
Sınıflar ve Nesneler nedir?
Sınıflar, uygulanması gerekenlerin planlarıdır. Bir önceki örneğimizi ele alırsak, bir kişiyi aramak, çağrı almak, mesaj almak, müzik çalmak veya başka şeyler yapmak için işlevlere sahip olabiliriz.
Bütün bunlar her akıllı telefon için ortaktır, dahili çalışmaları da benzerdir ve bir akıllı telefon işlevleri sınıfı veya bir sınıf olarak kabul edilebilirler. Nesneler, bu ortak uygulamayı ürünlerinde modifikasyonlarla kullanacak tüm akıllı telefon markaları olarak tanımlanabilir.
Bu temel sınıfın birden çok örneği olabilir ve her örnek, diğer nesnelere müdahale etmeden farklı bir değer durumunu tutabilir. Python'da, ayrılmış anahtar kelime sınıfı kullanılarak bir sınıf bildirilebilir. Ayrıca, sınıf değişkenlerini başlatmak için __init__ yapıcısı kullanılır.
sınıf Şirket:
tanım __init__ (kendi kendine):
self.name = 'upGrad'
def display_name (kendi kendine):
print(f”Şirket adı: {self.name}”)
cm = Şirket()
cm.görüntü_adı()
Ayrıca okuyun: Hindistan'da Python Geliştirici Maaşı
OOP'nin Farklı Sütunları
Artık bu paradigmanın temel yapı taşlarına aşina olduğumuza göre, bu kavramın en önemli özelliklerinden/karakteristiklerinden bazılarına bakalım:
kapsülleme
Bu, sınıfın yöntemlerinin (veya işlevlerinin) ve onunla ilişkili verilerin kapsüllendiğini veya yanlışlıkla veya harici erişime karşı korunduğunu belirtir. Bu, özel veya korumalı kapsamda tanımlanan özniteliklere sınıf dışından erişilemeyeceği anlamına gelir.
Python için bu dilde özel değişken kavramının olmadığı endişesi vardır, bu nedenle niteliklere sınıf dışından erişilebilir.
Bildirimin başında çift alt çizgi kullanarak özel öznitelikleri tanımanın bir yolu vardır ve buna sınıfın dışında aynı nesne aracılığıyla erişmeye çalışırsanız, Python algıladığında ad yönetimi uyguladığı için AttributeError ile uyarılacaksınız. özel bir değişken. Bu, niteliklerinize herhangi bir güvenlik sağlamaz çünkü hala erişilebilir durumdadırlar.
Miras
Kelimeden de anlaşılacağı gibi, ebeveyn sınıf olarak adlandırılan mevcut bir sınıfın bir kısmını, çok az değişiklikle veya hiç değişiklik yapmadan alt sınıf adı verilen yeni bir sınıfa alıyor. Bunu örneğimize şu şekilde bağlayabiliriz: Tüm akıllı telefon markaları, temel işlevleri yerine getirmelerine yardımcı olacak genel bir telefon sınıfını devralır ve ayrıca kullanıcı deneyimini ihtiyaçlarına göre geliştirmek için ekstra kodlar ekleyebilirler. Python'da bir sınıfı miras almak şu şekilde yapılır:
a sınıfı:
bazı içerik
B(A) sınıfı:
türetilmiş sınıfın içeriği
İşlev geçersiz kılma adı verilen kalıtımla ilgili başka bir kavram daha vardır. Genel akıllı telefonun kamera işlevinin o kadar iyi olmadığını ve üreticinin bunun için daha iyi bir çözümü olduğunu varsayalım. Alt sınıfta tekrar tanımlayarak bu işlevi doğrudan geçersiz kılabilir ve değişiklikleri orada uygulayabilirler.

Soyutlama
Alt sınıf uygulamalarına yönelik planı veya bir arabirimi tanımlar. Bu, temel sınıfta tam olarak uygulanmayan bazı yöntemlerin tanımlandığı ve yalnızca soyut bir görünümün tanımlandığı anlamına gelir. Oluşturulacak modül ve alt modüllerin çeşitli özelliklerinin takibinde yardımcı olabilir.
Örneğin, bazı akıllı telefonlar NFC'yi (yakın alan bağlantısı) destekler ve bu işlevsellik temel sınıfta tanımlanabilir ve uygulaması, ortaya çıkan telefonun alt sınıfında kodlanabilir. Bu şekilde, soyut temel sınıf, modülün ve sonraki uygulamaların genel görünümünü sağlayabilir. İşte bir örnek:
sınıf Telefon:
def kamera (kendi kendine):
geçmek
def NFC(kendi kendine):
geçmek
sınıf Xyz(Telefon):
def NFC(kendi kendine):
dönüş True
Şunlar hakkında bilgi edinin: En iyi Python araçları
polimorfizm
Kök anlamından yola çıkarsak, aynı şeyin birden çok biçimi anlamına gelir. Polimorfizm, işlevleri, iletilen argümanların sayısına veya türlerine göre tanımlar. Örneğin, Python'daki uzunluk işlevi, herhangi bir yinelenebilir veya nesne türünü alabilir ve tamsayı uzunluğunu döndürür.
Bu aynı zamanda işlev aşırı yüklemesi olarak da ifade edilebilir, ancak burada Python dilinde bir yakalama var. Aynı isim fonksiyonlarını farklı argümanlarla tanımlayamayız ve yapılırsa sadece son girişi dikkate alır.
OOP'nin Pratik Kullanım Örnekleri
Bu konseptin ne olduğunu ve ne gibi özellikler sunduğunu gördük. Bu konsepti uygulayabileceğiniz bazı örneklere bir göz atın:
Jinja Şablonu Oluşturma: Yolları ve sunucu tarafını yöneten Python'un Flask çerçevesi ile biraz deneyiminiz varsa, bu şablonlama bu verilerin ön uçta işlenmesine yardımcı olur. Genel olarak, daha sonra tüm sayfalar tarafından web sitesinde aynı düzene sahip olacak şekilde devralınan bir temel HTML dosyası oluşturulur.
Kivy Applications: Bu, platformlar arası (android ve IOS) GUI tabanlı python uygulamaları oluşturmanıza izin veren bir kitaplıktır ve burada programlamanın çoğu OOP konseptine dayanmaktadır.
ORM: Nesne-ilişkisel Eşleştiriciler, herhangi bir dili kullanarak uygulama kodundaki ilişkisel veritabanlarını tanımlamanın bir yolunu sunar. Örneğin, Django'da, farklı kullanıcı türleri için sınıfları kullanarak farklı model türleri tanımlayabilirsiniz.
Çözüm
Bu yazıda, OOP kavramının ne olduğunu, yapı taşlarını (sınıflar ve nesneler), farklı sütunları tartıştık ve bu paradigmanın benimsendiği bazı örnekleri vurguladık. Daha iyi kod yönetimi, işbirliği ve buna bağlı diğer programlara soyut işlevler sağlama nedeniyle bu programlama yönteminin dikkate alındığı çok sayıda yer vardır.
Python, veri bilimi hakkında bilgi edinmek istiyorsanız, çalışan profesyoneller için oluşturulan ve 10'dan fazla vaka çalışması ve proje, pratik uygulamalı atölye çalışmaları, endüstri uzmanlarıyla mentorluk sunan IIIT-B & upGrad'ın Veri Biliminde PG Diplomasına göz atın. Sektör danışmanlarıyla bire bir, en iyi firmalarla 400+ saat öğrenim ve iş yardımı.
OOP nedir?
OOP olarak kısaltılan nesne yönelimli programlama, yazılım tasarımlarını fonksiyonlara ve mantığa göre düzenlemek yerine verilere göre organize eden bir bilgisayar programlama tekniğidir. OOP, nesnelere, yani geliştiricilerin onları yönetmek için gerekli mantıktan ziyade kontrol etmek istediği farklı özelliklere ve davranışlara sahip veri alanlarına odaklanır. Bu programlama yöntemi, sürekli güncellenen veya bakımı yapılan büyük, karmaşık uygulamalar için idealdir. OOP, üretim, tasarım ve mobil uygulama girişimlerini kapsar. Bu dilin diğer avantajları, kodun yeniden kullanılabilirliği, ölçeklenebilirliği ve verimliliğidir.
OOP'deki farklı diller nelerdir?
Nesne yönelimli programlama dilleri, günümüzün bilgisayar endüstrisinde en sık kullanılan kodlama dillerinden birkaçını oluşturur. OOP dilleri her yerde bulunur. Bu diller, hem verileri hem de kodu tutan nesneleri kullanır. Kapsülleme, soyutlama, polimorfizm ve kalıtım, nesne yönelimli programlama fikirleridir. Popüler nesne yönelimli programlama dilleri arasında Java, Python, C++, Lisp ve Perl bulunur. Sınıflar ve nesneler paradigmasını kullanarak programlamaya yardımcı olurlar. Nesne yönelimli ilkeleri destekleyen diğer diller Perl, Objective-C, Dart, Lisp, JavaScript ve PHP'dir.
OOP'ler neden tercih edilir?
OOP'lerin tercih edilmesinin birçok nedeni vardır. Geliştiriciler, nesne yönelimli kodu yeniden kullanabilir. Kalıtımı, daha önce oluşturulmuş bilgileri ve işlevleri çoğaltmak için de kullanabilirsiniz. Bu, zamandan tasarruf sağlar, kodu basitleştirir, yerden tasarruf sağlar ve kodlamayı parmaklarımızda kolaylaştırır. Kodun çoğu tek bir yerde olduğundan ve çağrıldığından ve yeniden kullanıldığından, bakımı oldukça kolaydır. Çoğu dil bir miktar güvenlik sunarken, nesne yönelimli diller, kapsülleme güvenliği içerdiğinden daha uygundur. Nesne yönelimli programlama dilleri, bir programı nesnelere ve sınıflara böler. Bu, uygulamanıza daha modüler bir çerçeve sağladığı için avantajlıdır.