Objektorientiertes Python - Einführung

Programmiersprachen und verschiedene Methoden tauchen ständig auf. Objektorientierte Programmierung ist eine solche Methode, die in den letzten Jahren sehr populär geworden ist.

In diesem Kapitel werden die Funktionen der Programmiersprache Python erläutert, die sie zu einer objektorientierten Programmiersprache machen.

Klassifizierungsschema für die Sprachprogrammierung

Python kann unter objektorientierten Programmiermethoden charakterisiert werden. Das folgende Bild zeigt die Eigenschaften verschiedener Programmiersprachen. Beachten Sie die Funktionen von Python, die es objektorientiert machen.

Langauage Klassen Kategorien Sprachen
Programmierparadigma Verfahren C, C ++, C #, Ziel-C, Java, Los
Skripting CoffeeScript, JavaScript, Python, Perl, PHP, Ruby
Funktionell Clojure, Eralang, Haskell, Scala
Zusammenstellungsklasse Statisch C, C ++, C #, Ziel-C, Java, Go, Haskell, Scala
Dynamisch CoffeeScript, JavaScript, Python, Perl, PHP, Ruby, Clojure, Erlang
Typklasse Stark C #, Java, Go, Python, Rubin, Clojure, Erlang, Haskell, Scala
Schwach C, C ++, C #, Ziel-C, CoffeeScript, JavaScript, Perl, Php
Speicherklasse Gelang es Andere
Nicht verwaltet C, C ++, C #, Ziel-C

Was ist objektorientierte Programmierung?

Object Orientedbedeutet auf Objekte gerichtet. Mit anderen Worten bedeutet dies funktional auf die Modellierung von Objekten gerichtet. Dies ist eine der vielen Techniken, die zur Modellierung komplexer Systeme verwendet werden, indem eine Sammlung interagierender Objekte über ihre Daten und ihr Verhalten beschrieben wird.

Python, eine objektorientierte Programmierung (OOP), ist eine Programmiermethode, die sich auf die Verwendung von Objekten und Klassen zum Entwerfen und Erstellen von Anwendungen konzentriert. Die wichtigsten Säulen der objektorientierten Programmierung (OOP) sind Inheritance, Polymorphism, Abstraction, Anzeige Encapsulation.

Objektorientierte Analyse (OOA) ist der Prozess der Untersuchung eines Problems, Systems oder einer Aufgabe und der Identifizierung der Objekte und Interaktionen zwischen ihnen.

Warum objektorientierte Programmierung wählen?

Python wurde mit einem objektorientierten Ansatz entwickelt. OOP bietet folgende Vorteile:

  • Bietet eine klare Programmstruktur, mit der sich Probleme der realen Welt und ihre Lösungen leicht abbilden lassen.

  • Erleichtert die einfache Wartung und Änderung des vorhandenen Codes.

  • Verbessert die Programmmodularität, da jedes Objekt unabhängig vorhanden ist und neue Funktionen problemlos hinzugefügt werden können, ohne die vorhandenen zu stören.

  • Bietet ein gutes Framework für Codebibliotheken, in dem gelieferte Komponenten vom Programmierer einfach angepasst und geändert werden können.

  • Verbessert die Wiederverwendbarkeit von Code

Prozedurale vs. objektorientierte Programmierung

Die prozedurale Programmierung wird aus der strukturellen Programmierung abgeleitet, die auf den Konzepten von basiert functions/procedure/routines. In der prozedurorientierten Programmierung ist es einfach, auf die Daten zuzugreifen und diese zu ändern. Andererseits ermöglicht die objektorientierte Programmierung (OOP) die Zerlegung eines Problems in eine Anzahl von aufgerufenen Einheitenobjectsund erstellen Sie dann die Daten und Funktionen um diese Objekte. Es konzentriert sich mehr auf die Daten als auf Prozeduren oder Funktionen. Auch in OOP sind Daten ausgeblendet und können nicht durch externe Prozeduren abgerufen werden.

Die Tabelle im folgenden Bild zeigt die Hauptunterschiede zwischen POP- und OOP-Ansatz.

Unterschied zwischen prozedural orientierter Programmierung (POP) vs. Objektorientierte Programmierung (OOP).

Verfahrensorientierte Programmierung Objekt orientierte Programmierung
Beyogen auf In Pop liegt der gesamte Fokus auf Daten und Funktionen Hoppla basiert auf einem realen Szenario. Das gesamte Programm ist in kleine Teile unterteilt, die als Objekt bezeichnet werden
Wiederverwendbarkeit Begrenzte Wiederverwendung von Code Wiederverwendung von Code
Ansatz Top-down-Ansatz Objektorientiertes Design
Zugriffsspezifizierer Keine Öffentlich, privat und geschützt
Datenbewegung Daten können sich frei von Funktionen zu Funktionen im System bewegen In Ups können Daten über Mitgliedsfunktionen verschoben und miteinander kommuniziert werden
Datenzugriff In Pop verwenden die meisten Funktionen globale Daten für die Freigabe, auf die von Funktion zu Funktion im System frei zugegriffen werden kann In Ups können Daten nicht frei von Methode zu Methode verschoben werden. Sie können öffentlich oder privat aufbewahrt werden, damit wir den Zugriff auf Daten steuern können
Ausblenden von Daten In Pop, so spezielle Art, Daten zu verbergen, so ein bisschen weniger sicher Es bietet Daten versteckt, so viel sicherer
Überlastung Nicht möglich Funktionen und Überlastung des Bedieners
Beispielsprachen C, VB, Fortran, Pascal C ++, Python, Java, C #
Abstraktion Verwendet Abstraktion auf Prozedurebene Verwendet Abstraktion auf Klassen- und Objektebene

Prinzipien der objektorientierten Programmierung

Die objektorientierte Programmierung (OOP) basiert auf dem Konzept von objects eher als Aktionen, und dataeher als Logik. Damit eine Programmiersprache objektorientiert ist, sollte sie über einen Mechanismus verfügen, der das Arbeiten mit Klassen und Objekten sowie die Implementierung und Verwendung der grundlegenden objektorientierten Prinzipien und Konzepte ermöglicht, nämlich Vererbung, Abstraktion, Kapselung und Polymorphismus.

Lassen Sie uns kurz jede der Säulen der objektorientierten Programmierung verstehen -

Verkapselung

Diese Eigenschaft verbirgt unnötige Details und erleichtert die Verwaltung der Programmstruktur. Die Implementierung und der Status jedes Objekts sind hinter genau definierten Grenzen verborgen und bieten eine saubere und einfache Schnittstelle für die Arbeit mit ihnen. Eine Möglichkeit, dies zu erreichen, besteht darin, die Daten privat zu machen.

Erbe

Die Vererbung, auch Generalisierung genannt, ermöglicht es uns, eine hierarchische Beziehung zwischen Klassen und Objekten zu erfassen. Zum Beispiel ist eine "Frucht" eine Verallgemeinerung von "Orange". Vererbung ist aus Sicht der Wiederverwendung von Code sehr nützlich.

Abstraktion

Diese Eigenschaft ermöglicht es uns, die Details auszublenden und nur die wesentlichen Merkmale eines Konzepts oder Objekts freizulegen. Zum Beispiel weiß eine Person, die einen Roller fährt, dass beim Drücken einer Hupe ein Ton ausgegeben wird, aber sie hat keine Ahnung, wie der Ton beim Drücken der Hupe tatsächlich erzeugt wird.

Polymorphismus

Polymorphismus bedeutet viele Formen. Das heißt, eine Sache oder Handlung ist auf verschiedene Formen oder Arten vorhanden. Ein gutes Beispiel für Polymorphismus ist die Überladung von Konstruktoren in Klassen.

Objektorientiertes Python

Das Herzstück der Python-Programmierung ist object und OOPSie müssen sich jedoch nicht darauf beschränken, die OOP zu verwenden, indem Sie Ihren Code in Klassen organisieren. OOP ergänzt die gesamte Designphilosophie von Python und fördert eine saubere und pragmatische Art der Programmierung. OOP ermöglicht auch das Schreiben größerer und komplexer Programme.

Module vs. Klassen und Objekte

Module sind wie "Wörterbücher"

Beachten Sie bei der Arbeit an Modulen die folgenden Punkte:

  • Ein Python-Modul ist ein Paket zum Einkapseln von wiederverwendbarem Code.

  • Module befinden sich in einem Ordner mit einem __init__.py Datei darauf.

  • Module enthalten Funktionen und Klassen.

  • Module werden mit dem importiert import Stichwort.

Denken Sie daran, dass ein Wörterbuch ein ist key-valuePaar. Das heißt, wenn Sie ein Wörterbuch mit einem Schlüssel habenEmployeID und wenn Sie es abrufen möchten, müssen Sie die folgenden Codezeilen verwenden:

employee = {“EmployeID”: “Employee Unique Identity!”}
print (employee [‘EmployeID])

Sie müssen an Modulen mit dem folgenden Prozess arbeiten -

  • Ein Modul ist eine Python-Datei mit einigen Funktionen oder Variablen.

  • Importieren Sie die gewünschte Datei.

  • Jetzt können Sie mit dem '.' Auf die Funktionen oder Variablen in diesem Modul zugreifen. (dot) Operator.

Betrachten Sie ein Modul mit dem Namen employee.py mit einer Funktion darin aufgerufen employee. Der Code der Funktion ist unten angegeben -

# this goes in employee.py
def EmployeID():
   print (“Employee Unique Identity!”)

Importieren Sie nun das Modul und greifen Sie auf die Funktion zu EmployeID - -

import employee
employee. EmployeID()

Sie können eine Variable mit dem Namen einfügen Age, wie gezeigt -

def EmployeID():
   print (“Employee Unique Identity!”)
# just a variable
Age = “Employee age is **”

Greifen Sie nun wie folgt auf diese Variable zu:

import employee
employee.EmployeID()
print(employee.Age)

Vergleichen wir dies nun mit dem Wörterbuch -

Employee[‘EmployeID’] # get EmployeID from employee
Employee.employeID() # get employeID from the module
Employee.Age # get access to variable

Beachten Sie, dass es in Python ein allgemeines Muster gibt -

  • Nehmen Sie eine key = value Stil Container

  • Holen Sie sich etwas daraus mit dem Namen des Schlüssels

Beim Vergleichen des Moduls mit einem Wörterbuch sind beide ähnlich, mit Ausnahme der folgenden:

  • Im Falle der dictionaryist der Schlüssel eine Zeichenfolge und die Syntax ist [Schlüssel].

  • Im Falle der moduleDer Schlüssel ist ein Bezeichner und die Syntax lautet .key.

Klassen sind wie Module

Das Modul ist ein spezielles Wörterbuch, in dem Python-Code gespeichert werden kann, sodass Sie mit dem '.' Operator. Eine Klasse ist eine Möglichkeit, eine Gruppierung von Funktionen und Daten in einen Container zu legen, damit Sie mit dem Operator '.''auf sie zugreifen können.

Wenn Sie eine Klasse erstellen müssen, die dem Mitarbeitermodul ähnelt, können Sie dies mit dem folgenden Code tun:

class employee(object):
   def __init__(self):
      self. Age = “Employee Age is ##”
   def EmployeID(self):
      print (“This is just employee unique identity”)

Note- Klassen werden Modulen vorgezogen, da Sie sie unverändert und ohne große Störungen wiederverwenden können. Während Sie mit Modulen arbeiten, haben Sie nur eines mit dem gesamten Programm.

Objekte sind wie Mini-Importe

Eine Klasse ist wie eine mini-module und Sie können auf ähnliche Weise wie für Klassen importieren, indem Sie das aufgerufene Konzept verwenden instantiate. Beachten Sie, dass Sie beim Instanziieren einer Klasse eine erhaltenobject.

Sie können ein Objekt instanziieren, ähnlich wie beim Aufrufen einer Klasse wie einer Funktion.

this_obj = employee() # Instantiatethis_obj.EmployeID() # get EmployeId from the class
print(this_obj.Age) # get variable Age

Sie können dies auf eine der folgenden drei Arten tun:

# dictionary style
Employee[‘EmployeID’]
# module style
Employee.EmployeID()
Print(employee.Age)
# Class style
this_obj = employee()
this_obj.employeID()
Print(this_obj.Age)