Nesne Tabanlı Python - Giriş
Programlama dilleri ve dolayısıyla farklı metodolojiler sürekli olarak ortaya çıkmaktadır. Nesne yönelimli programlama, son birkaç yılda oldukça popüler hale gelen böyle bir metodolojidir.
Bu bölüm Python programlama dilinin onu nesne yönelimli bir programlama dili yapan özelliklerinden bahsediyor.
Dil Programlama Sınıflandırma Şeması
Python, nesne yönelimli programlama metodolojileri altında karakterize edilebilir. Aşağıdaki görüntü, çeşitli programlama dillerinin özelliklerini göstermektedir. Python'un onu nesne odaklı yapan özelliklerini gözlemleyin.
Dil Sınıfları | Kategoriler | Diller |
---|---|---|
Programlama Paradigması | Prosedürel | C, C ++, C #, Amaç-C, java, Git |
Komut dosyası oluşturma | CoffeeScript, JavaScript, Python, Perl, Php, Ruby | |
İşlevsel | Clojure, Eralang, Haskell, Scala | |
Derleme Sınıfı | Statik | C, C ++, C #, Objective-C, java, Go, Haskell, Scala |
Dinamik | CoffeeScript, JavaScript, Python, Perl, Php, Ruby, Clojure, Erlang | |
Tip Sınıfı | kuvvetli | C #, java, Git, Python, Yakut, Clojure, Erlang, Haskell, Scala |
Güçsüz | C, C ++, C #, Objective-C, CoffeeScript, JavaScript, Perl, Php | |
Hafıza Sınıfı | Yönetilen | Diğerleri |
Yönetilmeyen | C, C ++, C #, Amaç-C |
Nesne Tabanlı Programlama nedir?
Object Orientednesnelere yönelik anlamına gelir. Başka bir deyişle, işlevsel olarak nesneleri modellemeye yöneliktir. Bu, verileri ve davranışları aracılığıyla etkileşim halindeki nesnelerin bir koleksiyonunu tanımlayarak karmaşık sistemleri modellemek için kullanılan birçok teknikten biridir.
Bir Nesneye Yönelik Programlama (OOP) olan Python, uygulamaları tasarlamak ve oluşturmak için nesneleri ve sınıfları kullanmaya odaklanan bir programlama yöntemidir. Inheritance, Polymorphism, Abstraction, reklam Encapsulation.
Nesne Yönelimli Analiz (OOA), bir problemi, sistemi veya görevi inceleme ve nesneleri ve bunlar arasındaki etkileşimleri belirleme sürecidir.
Neden Nesne Tabanlı Programlamayı Seçmelisiniz?
Python, nesne yönelimli bir yaklaşımla tasarlanmıştır. OOP aşağıdaki avantajları sunar -
Gerçek dünyadaki sorunları ve bunların çözümlerini haritalamayı kolaylaştıran net bir program yapısı sağlar.
Mevcut kodun kolay bakımını ve değiştirilmesini kolaylaştırır.
Programın modülerliğini geliştirir çünkü her nesne bağımsız olarak mevcuttur ve yeni özellikler mevcut olanları bozmadan kolayca eklenebilir.
Sağlanan bileşenlerin programcı tarafından kolayca uyarlanıp değiştirilebildiği kod kitaplıkları için iyi bir çerçeve sunar.
Kodun yeniden kullanılabilirliğini sağlar
Prosedürel ve Nesne Tabanlı Programlama
Prosedüre dayalı programlama, aşağıdaki kavramlara dayanan yapısal programlamadan türetilmiştir. functions/procedure/routines. Prosedüre yönelik programlamada verilere erişmek ve bunları değiştirmek kolaydır. Öte yandan, Nesne Yönelimli Programlama (OOP), bir problemin bir dizi birim olarak ayrıştırılmasına izin verir.objectsve sonra verileri ve işlevleri bu nesneler etrafında oluşturun. Prosedür veya işlevlerden çok verilere vurgu yapar. Ayrıca OOP'de veriler gizlidir ve harici prosedürle erişilemez.
Aşağıdaki görüntüdeki tablo, POP ve OOP yaklaşımı arasındaki temel farkları göstermektedir.
Prosedüre Dayalı Programlama (POP) ile. Nesneye Yönelik Programlama (OOP).
Prosedüre Yönelik Programlama | Nesne yönelimli programlama | |
---|---|---|
Dayalı | Pop'ta tüm odak noktası veriler ve işlevlerdir | Hata, gerçek bir dünya senaryosuna dayanmaktadır.Tüm program, nesne adı verilen küçük parçalara bölünmüştür |
Tekrar Kullanılabilirlik | Sınırlı Kod yeniden kullanımı | Kod yeniden kullanımı |
Yaklaşmak | Yukarıdan Aşağıya Yaklaşım | Nesne odaklı Tasarım |
Tanımlayıcılara erişim | Hiç | Genel, özel ve Korumalı |
Veri hareketi | Veriler, sistemdeki işlevlerden işlevlerine serbestçe hareket edebilir | Hata durumunda, veriler üye işlevleri aracılığıyla taşınabilir ve birbirleriyle iletişim kurabilir |
Veri Erişimi | Pop'ta çoğu işlev, sistemdeki işlevden işlevine serbestçe erişilebilen paylaşım için küresel verileri kullanır. | Hata durumunda, veriler yöntemden yönteme serbestçe taşınamaz, herkese açık veya gizli tutulabilir, böylece verilere erişimi kontrol edebiliriz |
Veri Gizleme | Popta, verileri gizlemenin çok özel yolu, çok az güvenli | Veri gizleme sağlar, çok daha güvenli |
Aşırı yükleme | Mümkün değil | Fonksiyonlar ve Operatör Aşırı Yüklemesi |
Örnek Diller | C, VB, Fortran, Pascal | C ++, Python, Java, C # |
Soyutlama | Prosedür düzeyinde soyutlama kullanır | Sınıf ve nesne seviyesinde soyutlama kullanır |
Nesne Tabanlı Programlamanın İlkeleri
Nesneye Yönelik Programlama (OOP), objects eylemlerden ziyade ve datamantık yerine. Bir programlama dilinin nesne yönelimli olabilmesi için, sınıflar ve nesnelerle çalışmayı ve kalıtım, soyutlama, kapsülleme ve çok biçimlilik gibi temel nesne yönelimli ilke ve kavramların uygulanmasını ve kullanılmasını sağlayan bir mekanizmaya sahip olması gerekir.
Nesne yönelimli programlamanın sütunlarının her birini kısaca anlayalım -
Kapsülleme
Bu özellik, gereksiz ayrıntıları gizler ve program yapısını yönetmeyi kolaylaştırır. Her nesnenin uygulaması ve durumu iyi tanımlanmış sınırların arkasında gizlidir ve bu, onlarla çalışmak için temiz ve basit bir arayüz sağlar. Bunu başarmanın bir yolu, verileri gizli yapmaktır.
Miras
Genelleme olarak da adlandırılan kalıtım, sınıflar ve nesneler arasında hiyerarşik bir ilişki yakalamamıza izin verir. Örneğin, bir 'meyve', 'portakal'ın bir genellemesidir. Kalıtım, kodun yeniden kullanımı açısından çok yararlıdır.
Soyutlama
Bu özellik, ayrıntıları gizlememize ve bir kavram veya nesnenin yalnızca temel özelliklerini açığa çıkarmamıza izin verir. Örneğin, bir scooter kullanan bir kişi kornaya basıldığında ses çıktığını bilir, ancak kornaya basıldığında sesin gerçekte nasıl oluştuğuna dair hiçbir fikri yoktur.
Polimorfizm
Çok biçimlilik, birçok biçim anlamına gelir. Yani, bir şey veya eylem farklı şekillerde veya şekillerde mevcuttur. Çok biçimliliğe iyi bir örnek, sınıflarda yapıcı aşırı yüklemesidir.
Nesne Tabanlı Python
Python programlamanın kalbi object ve OOPancak, kodunuzu sınıflar halinde düzenleyerek OOP'yi kullanmak için kendinizi kısıtlamanıza gerek yoktur. OOP, Python'un tüm tasarım felsefesine katkıda bulunur ve programlamanın temiz ve pragmatik bir yolunu teşvik eder. OOP ayrıca daha büyük ve karmaşık programların yazılmasına da olanak tanır.
Modüller ve Sınıflar ve Nesneler
Modüller "Sözlükler" gibidir
Modüller üzerinde çalışırken aşağıdaki noktalara dikkat edin -
Python modülü, yeniden kullanılabilir kodu kapsüllemek için bir pakettir.
Modüller bir klasörde bulunur. __init__.py üzerine dosya.
Modüller, işlevleri ve sınıfları içerir.
Modüller, import anahtar kelime.
Bir sözlüğün bir key-valueçift. Bu, anahtarlı bir sözlüğünüz varsaEmployeID ve onu geri almak istiyorsanız, aşağıdaki kod satırlarını kullanmanız gerekecek -
employee = {“EmployeID”: “Employee Unique Identity!”}
print (employee [‘EmployeID])
Aşağıdaki süreçle modüller üzerinde çalışmanız gerekecek -
Bir modül, içinde bazı işlevler veya değişkenler içeren bir Python dosyasıdır.
İhtiyacınız olan dosyayı içe aktarın.
Artık o modüldeki işlevlere veya değişkenlere '.' İle erişebilirsiniz. (dot) Şebeke.
Adlı bir modül düşünün employee.py adı verilen bir işlevle employee. Fonksiyonun kodu aşağıda verilmiştir -
# this goes in employee.py
def EmployeID():
print (“Employee Unique Identity!”)
Şimdi modülü içe aktarın ve ardından işleve erişin EmployeID -
import employee
employee. EmployeID()
Adına bir değişken ekleyebilirsiniz. Age, gösterildiği gibi -
def EmployeID():
print (“Employee Unique Identity!”)
# just a variable
Age = “Employee age is **”
Şimdi, bu değişkene şu şekilde erişin -
import employee
employee.EmployeID()
print(employee.Age)
Şimdi bunu sözlükle karşılaştıralım -
Employee[‘EmployeID’] # get EmployeID from employee
Employee.employeID() # get employeID from the module
Employee.Age # get access to variable
Python'da ortak bir model olduğuna dikkat edin -
Al key = value stil kapsayıcı
Anahtarın adıyla ondan bir şey alın
Modülü bir sözlükle karşılaştırırken, aşağıdakiler dışında ikisi de benzerdir -
Durumunda dictionary, anahtar bir dizedir ve sözdizimi [anahtar] 'dır.
Durumunda module, anahtar bir tanımlayıcıdır ve sözdizimi .key'dir.
Sınıflar Modüller gibidir
Modül, Python kodunu saklayabilen özel bir sözlüktür, böylece ona '.' İle ulaşabilirsiniz. Şebeke. Sınıf, bir grup işlev ve veri almanın ve bunları bir konteynerin içine yerleştirmenin bir yoludur, böylece bunlara '.' Operatörüyle erişebilirsiniz.
Çalışan modülüne benzer bir sınıf oluşturmanız gerekiyorsa, aşağıdaki kodu kullanarak bunu yapabilirsiniz -
class employee(object):
def __init__(self):
self. Age = “Employee Age is ##”
def EmployeID(self):
print (“This is just employee unique identity”)
Note- Sınıflar modüllere göre tercih edilir çünkü onları oldukları gibi ve fazla müdahale olmadan tekrar kullanabilirsiniz. Modüllerle birlikte, tüm programla yalnızca bir tane var.
Nesneler, Mini içe aktarmalar gibidir
Bir sınıf bir mini-module ve sınıflar için yaptığınız gibi, adlı kavramı kullanarak içeri aktarabilirsiniz. instantiate. Bir sınıfı başlattığınızda, birobject.
Gösterildiği gibi, işlev gibi bir sınıfı çağırmaya benzer bir nesneyi başlatabilirsiniz -
this_obj = employee() # Instantiatethis_obj.EmployeID() # get EmployeId from the class
print(this_obj.Age) # get variable Age
Bunu aşağıdaki üç yoldan biriyle yapabilirsiniz -
# dictionary style
Employee[‘EmployeID’]
# module style
Employee.EmployeID()
Print(employee.Age)
# Class style
this_obj = employee()
this_obj.employeID()
Print(this_obj.Age)