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)