Objektorientiertes Programmierkonzept in Python

Veröffentlicht: 2020-12-01

Objektorientiert ist ein Programmierparadigma, das dem Konzept von Klassen und Objekten anstelle von Funktionen und Logik folgt. Es ist auch als ausgefallene Art der Codierung bekannt, die den Code so organisiert, dass die Lesbarkeit und Wartbarkeit des Codes erhöht wird. Das OOP-Konzept ist ein wichtiges Thema in der Programmierung und hilft, wiederverwendbare Module für eine Vielzahl von Aufgaben in Data Science zu bauen.

Dies ist oft eine Voraussetzung beim Erstellen von Deep-Learning-Modellen mit verschiedenen Bibliotheken wie Pytorch, wo das Basismodell wiederverwendet wird, um benutzerdefinierte Ebenen hinzuzufügen. Lassen Sie uns untersuchen, was dieses Konzept lehrt und wie es in praktischen Anwendungsfällen angewendet werden kann.

Inhaltsverzeichnis

Was ist das OOP-Konzept?

Stellen Sie sich ein Smartphone vor, das von jeder Marke sein kann, aber sie sind eine Vielzahl gemeinsamer Dinge unter allen. Alle haben Bildschirme, Lautsprecher, Tasten und auf Softwareebene sind fast alle Android-betrieben. Stellen Sie sich nun einen Fall vor, in dem jedes Unternehmen seine Software von Grund auf neu erstellt, sogar den Kernel, der die meisten Hardwarekomponenten steuert.

Dies würde zu einem langwierigen und teuren Prozess werden, wodurch der Preis der Vorrichtungen steigen würde. Was ist, wenn es ein abstraktes oder verallgemeinertes Modell gibt, das im Laufe der Zeit von jedem Hersteller gemäß seinen Anforderungen geändert werden kann? Dieses Konzept versucht, diese klassenbasierte Methode zu erfassen, bei der der Code in Klassen mit unterschiedlichen Zugriffsmethoden strukturiert ist.

Was sind Klassen und Objekte?

Klassen sind die Blaupausen dessen, was umgesetzt werden muss. Wenn wir unser vorheriges Beispiel betrachten, können wir Funktionen haben, um eine Person anzurufen, Anrufe, Nachrichten zu empfangen, Musik abzuspielen oder andere Dinge zu tun.

All diese Dinge sind allen Smartphones gemeinsam, ihre interne Funktionsweise ist auch ähnlich und sie können als eine Klasse von Smartphone-Funktionen oder eine Klasse betrachtet werden. Objekte können als alle Smartphone-Marken definiert werden, die diese gemeinsame Implementierung in ihren Produkten mit Modifikationen verwenden werden.

Es kann mehrere Instanzen dieser Basisklasse geben, und jede Instanz kann einen anderen Zustand von Werten enthalten, ohne andere Objekte zu beeinträchtigen. In Python kann eine Klasse mit dem reservierten Schlüsselwort class deklariert werden. Außerdem wird der Konstruktor __init__ verwendet, um die Klassenvariablen zu initialisieren.

Klasse Unternehmen:

def __init__ (selbst):

self.name = 'upGrad'

def Anzeigename (selbst):

print(f”Firmenname ist: {self.name}”)

cm = Firma()

cm.display_name()

Lesen Sie auch: Gehalt für Python-Entwickler in Indien

Verschiedene Säulen von OOP

Nachdem wir nun mit den grundlegenden Bausteinen dieses Paradigmas vertraut sind, wollen wir uns einige der wichtigsten Merkmale/Eigenschaften dieses Konzepts ansehen:

Verkapselung

Diese besagt, dass Methoden (oder Funktionen) der Klasse und die damit verbundenen Daten gekapselt oder vor versehentlichem oder externem Zugriff geschützt sind. Dies bedeutet, dass Attribute, die im privaten oder geschützten Bereich definiert sind, außerhalb der Klasse nicht zugänglich sind.

Für Python gibt es Bedenken, dass es in dieser Sprache kein Konzept für private Variablen gibt, sodass auf die Attribute außerhalb der Klasse zugegriffen werden kann.

Es gibt eine Möglichkeit, private Attribute zu erkennen, indem Sie am Anfang der Deklaration einen doppelten Unterstrich verwenden, und wenn Sie versuchen, außerhalb der Klasse über das Objekt derselben darauf zuzugreifen, werden Sie mit AttributeError aufgefordert, da Python Namensverstümmelung anwendet, wenn es dies erkennt eine private Variable. Dies gibt Ihren Attributen keine Sicherheit, da sie immer noch zugänglich sind.

Nachlass

Wie das Wort schon sagt, wird ein Teil einer vorhandenen Klasse, die als übergeordnete Klasse bezeichnet wird, in eine neue Klasse, die als untergeordnete Klasse bezeichnet wird, mit geringen oder keinen Änderungen übernommen. Wir können dies mit unserem Beispiel so verbinden, dass alle Smartphone-Marken eine generische Telefonklasse erben, die ihnen hilft, grundlegende Funktionen auszuführen, und sie können ihre zusätzlichen Codes hinzufügen, um die Benutzererfahrung entsprechend ihren Bedürfnissen zu verbessern. In Python erfolgt das Erben einer Klasse wie folgt:

Klasse a:

einige Inhalte

Klasse B(A):

Inhalt der abgeleiteten Klasse

Es gibt ein weiteres Konzept im Zusammenhang mit der Vererbung, das als Funktionsüberschreibung bezeichnet wird. Angenommen, die Kamerafunktion des generischen Smartphones ist nicht so gut, und der Hersteller hat eine bessere Lösung dafür. Sie können diese Funktion direkt überschreiben, indem sie sie in der untergeordneten Klasse erneut definieren und die Änderungen dort anwenden.

Abstraktion

Sie definiert den Bauplan oder eine Schnittstelle zu den Implementierungen der Unterklassen. Dies bedeutet, dass einige Methoden in der Basisklasse definiert sind, die nicht vollständig implementiert ist, und nur eine abstrakte Ansicht definiert ist. Es kann dabei helfen, die verschiedenen Merkmale des zu erstellenden Moduls und der Untermodule zu verfolgen.

Beispielsweise unterstützen einige Smartphones NFC (Nahfeldkonnektivität), und diese Funktionalität kann in der Basisklasse definiert und ihre Implementierung in der untergeordneten Klasse des resultierenden Telefons codiert werden. Auf diese Weise kann die abstrakte Basisklasse die Gesamtansicht des Moduls und nachfolgender Implementierungen bereitstellen. Hier ist ein Beispiel:

Klasse Telefon:

def Kamera (selbst):

passieren

def NFC (selbst):

passieren

Klasse Xyz (Telefon):

def NFC (selbst):

gibt Wahr zurück

Erfahren Sie mehr über: Top-Python-Tools

Polymorphismus

Wenn wir uns an die Wurzelbedeutung halten, bedeutet dies mehrere Formen derselben Sache. Polymorphismus definiert die Funktionen basierend auf der Anzahl oder den Typen der übergebenen Argumente. Beispielsweise kann die Längenfunktion in Python jede Art von iterierbarem Objekt oder Objekt annehmen und die ganzzahlige Länge zurückgeben.

Dies kann auch als Funktionsüberladung bezeichnet werden, aber hier ist ein Haken in der Python-Sprache. Wir können keine gleichnamigen Funktionen mit unterschiedlichen Argumenten definieren, und wenn dies erledigt ist, wird nur der letzte Eintrag berücksichtigt.

Praktische Anwendungsfälle von OOP

Wir haben gesehen, was es mit diesem Konzept auf sich hat und welche Features es bietet. Sehen Sie sich einige Beispiele an, bei denen Sie dieses Konzept anwenden können:

Jinja Templating: Wenn Sie etwas Erfahrung mit dem Flask-Framework von Python haben, das die Routen und die Serverseite handhabt, hilft dieses Templating bei der Handhabung dieser Daten am Front-End. Im Allgemeinen wird eine Basis-HTML-Datei erstellt, die dann von allen Seiten vererbt wird, um auf der gesamten Website das gleiche Layout zu haben.

Kivy Applications: Dies ist eine Bibliothek, mit der Sie plattformübergreifende (Android und IOS) GUI-basierte Python-Anwendungen erstellen können, und hier basiert der größte Teil der Programmierung auf dem OOP-Konzept.

ORM: Objektrelationale Mapper bieten eine Möglichkeit, die relationalen Datenbanken im Anwendungscode mit einer beliebigen Sprache zu definieren. Beispielsweise können Sie in Django verschiedene Arten von Modellen definieren, indem Sie Klassen für verschiedene Arten von Benutzern verwenden.

Fazit

In diesem Artikel haben wir besprochen, was das OOP-Konzept ist, seine Bausteine ​​(Klassen und Objekte), verschiedene Säulen und einige Beispiele hervorgehoben, in denen dieses Paradigma übernommen wird. Es gibt zahlreiche Stellen, an denen diese Programmiermethode aufgrund einer besseren Codeverwaltung, Zusammenarbeit und Bereitstellung abstrakter Funktionalitäten für andere davon abhängige Programme in Betracht gezogen wird.

Wenn Sie neugierig sind, mehr über Python und Data Science zu erfahren, schauen Sie sich das PG Diploma in Data Science von IIIT-B & upGrad an, das für Berufstätige entwickelt wurde und mehr als 10 Fallstudien und Projekte, praktische praktische Workshops, Mentoring mit Branchenexperten, 1-on-1 mit Mentoren aus der Branche, mehr als 400 Stunden Lern- und Jobunterstützung bei Top-Unternehmen.

Was ist OOP?

Objektorientierte Programmierung, abgekürzt als OOP, ist eine Computerprogrammiertechnik, die Softwaredesigns nach Daten organisiert, anstatt sie nach Funktionen und Logik zu organisieren. OOP konzentriert sich auf die Objekte, dh Datenfelder mit unterschiedlichen Eigenschaften und Verhaltensweisen, die Entwickler steuern möchten, und nicht auf die Logik, die zu ihrer Verwaltung erforderlich ist. Diese Programmiermethode ist ideal für große, komplizierte Anwendungen, die ständig aktualisiert oder gewartet werden. OOP umfasst Fertigungs-, Design- und mobile Anwendungsinitiativen. Weitere Vorteile dieser Sprache sind Wiederverwendbarkeit, Skalierbarkeit und Effizienz des Codes.

Was sind die verschiedenen Sprachen in OOP?

Objektorientierte Programmiersprachen bilden einige der am häufigsten verwendeten Programmiersprachen in der heutigen Computerindustrie. OOP-Sprachen sind überall zu finden. Diese Sprachen verwenden Objekte, die sowohl Daten als auch Code enthalten. Kapselung, Abstraktion, Polymorphismus und Vererbung sind objektorientierte Programmierideen. Beliebte objektorientierte Programmiersprachen sind Java, Python, C++, Lisp und Perl. Sie unterstützen bei der Programmierung unter Verwendung des Klassen- und Objektparadigmas. Andere Sprachen, die objektorientierte Prinzipien unterstützen, sind Perl, Objective-C, Dart, Lisp, JavaScript und PHP.

Warum werden OOPs bevorzugt?

Es gibt viele Gründe, warum OOPs bevorzugt werden. Entwickler können objektorientierten Code wiederverwenden. Sie können die Vererbung auch verwenden, um zuvor erstellte Informationen und Funktionen zu duplizieren. Das spart Zeit, vereinfacht den Code, spart Platz und macht das Codieren angenehmer für unsere Finger. Da sich der Großteil des Codes an einem Ort befindet und aufgerufen und wiederverwendet wird, ist er erheblich einfacher zu warten. Während die meisten Sprachen ein gewisses Maß an Sicherheit bieten, sind objektorientierte Sprachen bequemer, da die Kapselung Sicherheit beinhaltet. Objektorientierte Programmiersprachen unterteilen ein Programm in Objekte und Klassen. Dies ist vorteilhaft, da es Ihrer Anwendung einen modulareren Rahmen verleiht.