Ein vollständiger Leitfaden zu OOPs-Konzepten in Python
Veröffentlicht: 2020-10-22Objektorientierte Programmierung oder OOP ist schon seit einiger Zeit ein fester Bestandteil der Softwarewelt. Es ist ein hervorragendes Programmierparadigma, das ein gewisses Maß an Freiheit bietet und die Programmierleistungen für den Entwickler verbessert.
Es gibt bestimmte grundlegende Konzepte und Prinzipien, die jeder Entwickler kennen sollte. Sie treiben die Prämisse für die Entwicklung einer Anwendung mit diesem Modell voran.
Hier werfen wir einen Blick auf einige der entscheidenden, aber grundlegenden OOPs-Konzepte in Python . Diese Konzepte treiben die Programmierer dazu, bessere Ergebnisse zu erzielen und ihre Apps auf bereichernde Weise zu modellieren.
Inhaltsverzeichnis
Was ist objektorientierte Programmierung?
Für die Uneingeweihten beginnen wir hier mit unserer Einführung. Lassen Sie uns OOPs so verstehen, wie es ein Laie tun würde, um ein tieferes Verständnis dafür zu bekommen, wie wir es lösen können.
In dieser Programmierstruktur können Sie Dinge mit ähnlichen Eigenschaften oder Verhaltensweisen einfach zu einem einzigen Objekt kombinieren. Wenn Sie über Demografie sprechen, dann wird dies zu einem einzigen Objekt für dieses Programmiermodell. Wenn Sie über zu ergreifende Maßnahmen sprechen, wird dies ebenfalls zu einem anderen Objekt.
Sie alle sind Objekte, die Rohdaten enthalten. Ihre Softwarelösung programmiert diese Objekte so, dass sie gemeinsam das Endziel erfüllen. Diese Objekte werden, wie von Ihnen programmiert, einige Aktionen zusammen ausführen und das Ergebnis liefern.
Ein hervorragendes Beispiel, um dies zu verstehen, wäre ein E-Mail-Programm.
Nehmen wir an, Sie haben ein Objekt, das den Inhalt der E-Mail enthält, z. B. den Namen des Empfängers und den Betreff. Es gibt ein zweites Objekt, das den Anhang und das Senden der E-Mail beschreibt. Sie entwerfen ein Programm, das diese Objekte automatisch kombiniert, stellen sicher, dass eine vollständig geschriebene E-Mail mit den gewünschten Anhängen fertig ist, und senden sie an den Empfänger.
So funktioniert OOP. Einige Konzepte treiben dies jedoch in die Tat um. Werfen wir einen kurzen Blick auf diese Konzepte und ihre Funktionsweise.
Lesen Sie: Ist Python eine objektorientierte Sprache?
Wie definiere ich eine Klasse?
Die Klasse definiert jedes Objekt und ist ein wichtiger Aspekt der OOPs-Konzepte in Python . Angenommen, Sie haben vier Objekte wie Augen, Ohren, Mund und Nase. Dies sind Teile eines Gesichts, das die Klasse ist.
Beginnen wir mit der Definition einer Klasse.
Angenommen, Sie sprechen über eine Klasse namens E-Mail.
E-Mail der Klasse:
passieren
So wird die Klasse definiert. Verwenden Sie „pass“, damit beim Ausführen des Codes in einem Compiler keine Fehler ausgegeben werden.
Nur die Definition der Klasse hilft Ihnen möglicherweise nicht viel. Sie müssen einige Eigenschaften hinzufügen, um es attraktiv und den Code hilfreich zu machen. Sie müssen also Objekte zu Ihrer Klasse hinzufügen.
Die Methode ._init_() würde sich beim Definieren der Eigenschaften innerhalb einer Klasse als nützlich erweisen.
Dadurch wird sichergestellt, dass jedes Mal, wenn Sie ein neues Objekt für die Klasse erstellen, diese Methode die Parameter auf den Anfangszustand setzt und somit jedes Mal ein neues Objekt initialisiert.
Der erste Parameter für diese Methode wäre immer self, auch wenn Sie ihr mehrere Parameter zuweisen.
Was passiert also in diesem Fall? Angenommen, Sie haben eine neue Klasse erstellt. Die Instanz wird an den Parameter self übergeben. Als Ergebnis kann ._init_() dem definierten Objekt neue Eigenschaften zuweisen.
Wenn Sie immer noch darüber nachdenken, wie Sie es verwenden sollen, lassen Sie es uns anhand eines Beispiels verstehen.
E-Mail der Klasse:
def ._init_(selbst, Name, Empfänger, Adresse):
self.name = name
self.recipient = Empfänger
self.address = Adresse
Lassen Sie uns diesen Code zum besseren Verständnis aufschlüsseln.
Die im obigen Code ausgedrückte Einrückung ist kritisch. Sie sollten dasselbe tun, wenn Sie Ihr Programm mit OOPs in Python schreiben . Lassen Sie uns die self-Variable im obigen Code verstehen.
Der self.name erzeugt ein Attribut namens name. Diesem Attribut wird der Wert des Namensparameters zugewiesen. In ähnlicher Weise werden auch den Other-Self-Variablen Attribute und Werte zugewiesen.
Diese Attribute werden als Instanz bezeichnet. Sie müssen den Wert jedes Attributs angeben, das in einer bestimmten Instanz erwähnt wird. Nehmen wir an, es gibt zwei Arten von E-Mails – Begrüßung und Pflege. Der E-Mail-Empfänger würde sich für beide Instanzen unterscheiden (Willkommens-E-Mails und Nurture-E-Mails).
Klassenattribute hingegen sind anders; Sie enthalten denselben Wert für alle Klasseninstanzen. Dies sind beispielsweise alle eingehenden E-Mails. Dies ist das Klassenattribut, das Sie für sie definieren können.
E-Mail der Klasse:
#Class-Attribut
E-Mail: „Eingehende E-Mails“

def ._init_(selbst, Name, Empfänger, Adresse):
self.name = name
self.recipient = Empfänger
self.address = Adresse
Erfahren Sie mehr über: Programmieren, Kompilieren und Ausführen von Java-Projekten
Klassen- und Instanzvariablen verstehen
Nehmen wir das obige Beispiel, in dem wir ein Klassenattribut sowie zwei Instanzvariablen erstellt haben, um OOPs in Python besser zu verstehen.
E-Mail der Klasse:
E-Mail: „Eingehende E-Mails“
def ._init_(selbst, Name, Empfänger, Adresse):
self.name = name
self.recipient = Empfänger
self.address = Adresse
Lassen Sie uns über das Instanziieren der Objekte innerhalb dieser Klasse sprechen. Sie müssen für jedes dieser Objekte Werte festlegen. Dies ist der Anfangswert für jedes Objekt, wie im vorherigen Teil des Handbuchs besprochen. Falls Sie diesen Objekten keine Werte zuweisen, erhalten Sie einen TypeError.
>>> E-Mail()
Traceback (letzter Aufruf zuletzt):
Datei „<pyshell#6>“, Zeile 1, in <module>
Email ()
TypeError: __init__() fehlen 4 Positionsargumente: 'Name', 'Empfänger' und 'Adresse'
Wir können unmittelbar nach dem Klassennamen einen Wert hinzufügen.
Pflege-E-Mail = E-Mail (Pflege, David, [email protected])
Willkommens-E-Mail = E-Mail (Willkommen, Daisy, [email protected])
Mit dem obigen Code haben wir zwei Instanzen generiert, für eine Nurture-E-Mail und eine Willkommens-E-Mail. Lassen Sie uns das nach der Klasseninstanz definierte __init__() auf den obigen Code überprüfen. Wir sehen vier Parameter, einschließlich Selbst. Für sich selbst wurde jedoch keine Variable erwähnt. Lassen Sie uns verstehen, warum?
Wenn Sie also ein neues Objekt innerhalb einer Klasse erstellen, instanziieren Sie die Klasse. Dabei vergeben Sie eine Speicheradresse, wo die Variable gespeichert wird. Sobald Sie ein neues Objekt instanziieren, erstellt Python automatisch eine Instanz, die an die erste Variable in der Methode .__init__() übergeben wird. Als Ergebnis wird das Selbst bei dieser Methode entfernt.
Mit der Klassenvariablen können Sie sicherstellen, dass jeder von Ihnen erstellten Instanz eine Variable oder ein Wert zugeordnet ist. Dies sorgt für schnellere und einfachere Ergebnisse und damit für sicherere Schlussfolgerungen für Ihre Programmierung.
Lesen Sie auch: 47 Fragen und Antworten zu OOPS-Interviews für Neulinge und Erfahrene müssen gelesen werden
Zusammenfassen
Wir haben hier die verschiedenen Aspekte der Erstellung einer Klasse, eines Objekts und einer Methode mit dem Python-OOPs-Programmiermodell verstanden. Abgesehen davon haben wir auch Konzepte wie Instanzen und Instanziierung verstanden, die den Kern der OOPs-Programmierung in Python bilden. Als Nächstes müssen Sie die Prinzipien verstehen, die diese Instanzen und Klassen regeln, wie z. B. Vererbung, Polymorphie, Abstraktion und Kapselung. Sie sind zentrale OOPs-Konzepte in Python , die Ihre Anwendung und ihre Ergebnisse steuern.
Um sich im Python-Trichter weiter zu bewegen, müssen Sie Ihre Grundlagen klar und verwurzelt haben. Tauchen Sie also in Klassen ein und verstehen Sie, wie es funktioniert. Spielen Sie ein wenig mit diesen Variablen herum und verstehen Sie ihre Ergebnisse, bevor Sie Ihre Anwendung einrichten können.
Wenn Sie neugierig darauf sind, Data Science zu lernen, um an der Spitze des rasanten technologischen Fortschritts zu stehen, sehen Sie sich das PG-Diplom in Data Science von upGrad & IIIT-B an und bilden Sie sich für die Zukunft weiter.
Warum verwenden wir OOPs?
Objektorientierte Programmierung (OOP) ist ein Programmierrahmenwerk, das auf der Entwicklung wiederverwendbarer „Objekte“ mit ihren Attributen und ihrem Verhalten beruht, auf die eingewirkt, manipuliert und verpackt werden kann. Python unterstützt sowohl OOP als auch andere Frameworks. In Python erreichen Sie OOP durch die Verwendung von Klassen. Python hat alle üblichen Merkmale der objektorientierten Programmierung. Entwickler verwenden OOP in ihren Python-Anwendungen, weil es Codes wiederverwendbarer macht und die Arbeit mit größeren Programmen erleichtert. Da eine Klasse nur einmal definiert und mehrfach verwendet werden kann, verhindern OOP-Systeme das Duplizieren von Code. Infolgedessen macht es OOP einfach, dem „Don't Repeat Yourself“ (DRY)-Konzept zu folgen.
Was ist eine Klasse?
Eine Python-Klasse ähnelt einer Blaupause zum Generieren eines neuen Objekts. Ein Objekt ist alles, was Sie beim Codieren modifizieren oder ändern möchten. Wenn wir ein Klassenobjekt instanziieren, was passiert, wenn wir eine Variable definieren, wird ein neues Objekt von Grund auf neu erstellt. Klassenobjekte können beliebig oft wiederverwendet werden. Eine Klasse wird verwendet, um jedes Element zu konstruieren. Betrachten Sie dies als die Blaupause für eine bestimmte Art von Gegenstand. Klassen listen die Attribute auf, die für diesen Objekttyp erforderlich sind, weisen ihnen jedoch keinen Wert zu. Klassen spezifizieren auch Methoden, die von allen Objekten desselben Typs gemeinsam genutzt werden.
Was ist eine Instanzvariable?
Eine Klasseninstanz besitzt Instanzvariablen in Python. Der Wert einer Instanzvariablen kann sich basierend auf der Instanz ändern, mit der sie verknüpft ist. Dies unterscheidet sich von einer Klassenvariablen, der nur ein Wert zugewiesen werden kann. Instanzvariablen werden innerhalb einer Klassenmethode deklariert. Wenn wir eine Klasse deklarieren, können wir Instanzvariablen Werte zuweisen. Wenn wir die Klasse deklarieren, geben wir die Werte an, die wir als Argumente zuweisen möchten.