Python-Klassen und -Objekte [mit Beispielen]

Veröffentlicht: 2021-06-25

OOP – kurz für Object-Oriented Programming – ist ein Paradigma, das auf Objekten und Klassen beruht, um funktionale Programme zu erstellen. OOPs arbeiten an der Modularität von Code, und Klassen und Objekte helfen beim Schreiben wiederverwendbarer, einfacher Codeteile, die zum Erstellen größerer Softwarefunktionen und -module verwendet werden können. C++, Java und Python sind die drei am häufigsten verwendeten objektorientierten Programmiersprachen. Wenn es jedoch um die heutigen Anwendungsfälle geht – wie Data Science und statistische Analyse – übertrumpft Python die beiden anderen.

Dies ist keine Überraschung, da Data Scientists auf der ganzen Welt auf die Fähigkeiten der Programmiersprache Python schwören. Wenn Sie planen, eine Karriere in Data Science zu beginnen und Python beherrschen möchten, sollte das Wissen über Klassen und Objekte Ihre erste Priorität sein.

In diesem Artikel helfen wir Ihnen, alle Nuancen hinter Objekten und Klassen in Python zu verstehen, zusammen mit den ersten Schritten zum Erstellen Ihrer eigenen Klassen und zum Arbeiten mit ihnen.

Inhaltsverzeichnis

Klassen in Python

Eine Klasse in Python ist ein benutzerdefinierter Prototyp, mit dem Objekte erstellt werden. Vereinfacht gesagt ist eine Klasse eine Methode, um Daten und Funktionalität zu bündeln . Die beiden Schlüsselwörter sind wichtig zu beachten. Daten bedeutet alle instanziierten oder definierten Variablen, während Funktionalität jede Operation bedeutet, die mit diesen Daten ausgeführt werden kann. Zusammen mit Daten und Funktionalität, die in einem Paket gebündelt sind, erhalten wir Klassen.

Betrachten Sie das folgende einfache Beispiel, um die Notwendigkeit zum Erstellen einer Klasse zu verstehen. Angenommen, Sie möchten Katzen in Ihrer Nachbarschaft mit unterschiedlichen Merkmalen wie Alter, Rasse, Farbe, Gewicht usw. verfolgen. Sie können eine Liste verwenden und Elemente 1:1 verfolgen, dh Sie können die Rasse bis zu verfolgen Alter oder Alter zum Gewicht anhand einer Liste. Was, wenn es 100 verschiedene Katzen geben soll? Was ist, wenn weitere Eigenschaften hinzugefügt werden sollen? In einem solchen Szenario neigt die Verwendung von Listen dazu, unorganisiert und chaotisch zu sein.

Genau da kommt der Unterricht ins Spiel!

Klassen helfen Ihnen beim Erstellen einer benutzerdefinierten Datenstruktur mit eigenen Datenelementen (Variablen) und Elementfunktionen. Sie können auf diese Variablen und Methoden zugreifen, indem Sie einfach ein Objekt für die Klasse erstellen (wir werden später mehr darüber sprechen). Klassen sind also gewissermaßen wie eine Blaupause für ein Objekt.

Darüber hinaus wird durch das Erstellen von Klassen automatisch ein neuer Objekttyp erstellt, wodurch Sie weitere Objekte desselben Typs erstellen können. An jede Klasseninstanz können Attribute angehängt werden, um ihren Zustand beizubehalten. Klasseninstanzen können selbst Methoden (wie durch ihre Klasse definiert) zum Modifizieren des Zustands haben.

Einige Punkte zur Python-Klasse:

  • Klassen werden mit dem Schlüsselwort class erstellt.
  • Attribute sind die Variablen, die für die von Ihnen erstellte Klasse spezifisch sind.
  • Diese Attribute sind immer öffentlicher Natur und können mit dem Punktoperator nach dem Klassennamen aufgerufen werden. Beispielsweise ruft ClassName.AttributeName das bestimmte Attributdetail dieser bestimmten Klasse ab.

Syntax zum Definieren einer Klasse:

Klasse Klassenname:

# Anweisung-1

.

.

.

# Anweisung-N

Zum Beispiel:

Klasse Katze:

passieren

Im obigen Beispiel zeigt das Schlüsselwort class an, dass Sie eine Klasse erstellen, gefolgt vom Namen der Klasse (in diesem Fall Cat). Die Rolle dieser Klasse ist noch nicht definiert.

Vorteile der Verwendung von Klassen in Python

  • Klassen helfen Ihnen dabei, all die verschiedenen Arten von Daten an einem Ort richtig organisiert zu halten. Auf diese Weise halten Sie den Code sauber und modular und verbessern die Lesbarkeit Ihres Codes.
  • Die Verwendung von Klassen ermöglicht es Ihnen, die Vorteile eines anderen OOP-Paradigmas zu nutzen – genannt Vererbung. Dies ist der Fall, wenn eine Klasse die Eigenschaften einer anderen Klasse erbt.
  • Mit Klassen können Sie alle Standardoperatoren überschreiben.
  • Klassen machen Ihren Code wiederverwendbar, was Ihr Programm viel effizienter macht.

Objekte in Python

Ein Objekt ist einfach eine Instanz einer beliebigen Klasse, die Sie definiert haben. In dem Moment, in dem Sie eine Klasse erstellen, wird bereits eine automatische Instanz erstellt. Daher instanziiert die Cat-Klasse wie im Beispiel automatisch ein Objekt wie eine echte Katze – persischer Rasse und 3 Jahre alt. Sie können viele verschiedene Fälle von Katzen mit unterschiedlichen Eigenschaften haben, aber damit es Sinn macht, brauchen Sie eine Klasse als Ihren Führer. Andernfalls fühlen Sie sich am Ende verloren und wissen nicht, welche Informationen benötigt werden.

Ein Objekt wird grob durch drei Dinge charakterisiert:

  • Status: Dies bezieht sich auf die verschiedenen Attribute eines Objekts und die verschiedenen Eigenschaften, die es zeigen kann.
  • Verhalten: Dies bezeichnet im Grunde die Methoden dieses Objekts. Es spiegelt auch wider, wie dieses bestimmte Objekt mit anderen Objekten interagiert oder auf sie reagiert.
  • Identität: Identität ist der eindeutige Name des Objekts, mit dem es bei Bedarf aufgerufen werden kann.

1. Objekte deklarieren

Das Deklarieren von Objekten wird auch als Instanziieren einer Klasse bezeichnet, denn sobald Sie eine Klasse definieren, wird ein Standardobjekt in sich selbst erstellt (wie wir zuvor gesehen haben) – das die Instanz dieser Klasse ist. Ebenso erstellen Sie jedes Mal, wenn Sie ein Objekt erstellen, im Wesentlichen eine neue Instanz Ihrer Klasse.

In Bezug auf die drei Dinge (Zustand, Verhalten, Identität), die wir zuvor erwähnt haben, teilen alle Instanzen (Objekte) Verhalten und Zustand, aber ihre Identitäten sind unterschiedlich. Eine einzelne Klasse kann je nach Bedarf des Programmierers eine beliebige Anzahl von Objekten haben.

Sehen Sie sich das Beispiel unten an. Hier ist ein Programm, das erklärt, wie man Klassen instanziiert.

Klasse Katze:

# Eine einfache Klasse

# Attribut

attr1 = „Katze“

attr2 = „Katze“

# Eine Beispielmethode

def Spaß (selbst):

print("Ich bin ein", self.attr1)

print("Ich bin ein", self.attr2)

# Fahrercode

# Objektinstanziierung

Tom = Katze()

# Auf Klassenattribute zugreifen

# und Methode durch Objekte

print(Tom.attr1)

Tom.fun();

Die Ausgabe dieses einfachen Programms sieht wie folgt aus:

Katzenartig

Ich bin eine Katze

Ich bin eine Katze

Wie Sie sehen können, haben wir zuerst eine Klasse namens cat erstellt und dann ein Objekt mit dem Namen „Tom“ instanziiert. Die drei Ergebnisse, die wir erhielten, waren wie folgt:

  • Feline – das war das Ergebnis des Statements print(Tom.attr1). Da Tom ein Objekt der Cat-Klasse ist und attr1 auf Feline gesetzt wurde, gibt diese Funktion die Ausgabe Feline zurück.
  • Ich bin eine Katze – Tom.fun(); verwendet das Objekt namens Tom, um eine Funktion in der cat-Klasse aufzurufen, die als 'fun' bekannt ist. Das Tom-Objekt bringt die Attribute zur Funktion mit, und daher gibt die Funktion die folgenden zwei Sätze aus – „Ich bin eine Katze“.
  • Ich bin eine Katze – derselbe Grund wie oben angegeben.

Nachdem Sie nun verstanden haben, wie Klassen und Objekte in Python funktionieren, wollen wir uns einige grundlegende Methoden ansehen.

2. Die Selbstmethode

Alle Methoden, die in einer beliebigen Klasse definiert sind, müssen einen zusätzlichen ersten Parameter in der Funktionsdefinition haben. Diesem Parameter wird vom Programmierer kein Wert zugewiesen. Wenn die Methode jedoch aufgerufen wird, stellt Python ihr einen Wert bereit.

Wenn Sie also eine Funktion ohne Argumente definieren, hat sie technisch gesehen immer noch ein Argument. Dies wird in Python "self" genannt. Um dies besser zu verstehen, können Sie Ihre Konzepte von Zeigern in C++ überarbeiten oder in Java darauf verweisen. Die Selbstmethode funktioniert im Wesentlichen auf die gleiche Weise.

Um dies besser zu verstehen – wenn wir zum Beispiel eine beliebige Methode eines Objekts aufrufen:

myObject.myMethod(arg1, arg2) konvertiert Python automatisch in myClass.myMethod(myObject, arg1, arg2).

Sie sehen also, das Objekt selbst wird zum ersten Argument der Methode. Darum geht es beim Selbst in Python.

3. Die __init__-Methode

Diese Methode ähnelt Konstruktoren in Java oder C++. Wie Konstruktoren wird die Methode init verwendet, um den Zustand eines Objekts zu initialisieren. Diese enthält eine Sammlung von Anweisungen (Anweisungen), die zum Zeitpunkt der Objekterstellung ausgeführt werden. Wenn ein Objekt für eine Klasse instanziiert wird, führt die Methode init automatisch die von Ihnen initialisierten Methoden aus.

Hier ist ein Code-Stück Code, um das besser zu erklären:

# Eine Beispielklasse mit Init-Methode

Klasse Person:

# Init-Methode oder Konstruktor

def __init__(selbst, Name):

self.name = name

# Probenmethode

def sag_hi(selbst):

print('Hallo, mein Name ist', self.name)

p = Person („Sam“)

p.say_hi()

Ausgabe:

Hallo, mein Name ist Sam

Lernen Sie Datenanalyse-Kurse online von den besten Universitäten der Welt. Verdienen Sie Executive PG-Programme, Advanced Certificate-Programme oder Master-Programme, um Ihre Karriere zu beschleunigen.

Klassen- und Instanzvariablen

Instanzvariablen sind für jede Instanz eindeutig, während Klassenvariablen für Methoden und Attribute gelten, die von allen Instanzen einer Klasse gemeinsam genutzt werden. Folglich sind Instanzvariablen im Grunde genommen Variablen, deren Wert innerhalb eines Konstruktors oder einer Methode mit self zugewiesen wird. Andererseits sind Klassenvariablen solche, deren Werte innerhalb einer Klasse zugewiesen werden.

Gehen Sie den folgenden Code durch, um zu verstehen, wie Instanzvariablen mithilfe eines Konstruktors (Init-Methode) definiert werden:

Klasse Katze:

# Klassenvariable

Tier = 'Katze'

# Die Init-Methode oder der Konstruktor

def __init__(selbst, Rasse, Farbe):

# Instanzvariable

self.breed = Rasse

self.color = Farbe

# Objekte der Hundeklasse

Tom = Katze („Persisch“, „Schwarz“)

Snowy = Katze („Indie“, „weiß“)

print("Tom-Details:')

print('Tom ist ein', Tom.tier)

print('Rasse: ', Tom.breed)

print('Farbe: ', Tom.farbe)

print('\nSchneedetails:')

print("Snowy ist ein', Snowy.animal)

print('Rasse: ', Snowy.breed)

print('Farbe: ', Snowy.color)

Wenn Sie dem obigen Code Zeile für Zeile folgen, erhalten Sie die folgende Ausgabe:

Ausgabe:

Tom-Details:

Tom ist eine Katze

Rasse: Perser

Farbe: Schwarz

Snowy-Details:

Snowy ist eine Katze

Rasse: Indie

Farbe weiß

Abschließend

Python ist eine vergleichsweise einfachere Programmiersprache, insbesondere für Anfänger. Sobald Sie die Grundlagen beherrschen, sind Sie bereit, mit verschiedenen Python-Bibliotheken zu arbeiten und datenspezifische Probleme zu lösen. Denken Sie jedoch daran, dass Sie, während die Reise mit dem Verständnis von Klassen und Objekten beginnt, auch lernen müssen, wie man mit verschiedenen Objekten, Klassen und ihren Nuancen arbeitet.

Wir hoffen, dass dieser Artikel dazu beigetragen hat, Ihre Zweifel an Klassen und Objekten in Python zu klären. Wenn Sie Fragen haben, schreiben Sie uns bitte unten einen Kommentar – wir werden uns bald bei Ihnen melden!

Wenn Sie sich beruflich verändern möchten und professionelle Hilfe suchen – upGrad ist für Sie da. Sehen Sie sich unser Executive PG Program in Data Science an, das in Zusammenarbeit mit IIIT-B angeboten wird. Machen Sie sich mit über 14 Programmiersprachen und Tools (einschließlich Python) vertraut und erhalten Sie gleichzeitig Zugang zu mehr als 30 branchenrelevanten Projekten. Studierende aller Richtungen können sich für dieses Programm anmelden, sofern sie in ihrem Bachelor mindestens 50% erzielt haben.

Wir haben eine solide Lernbasis aus über 85 Ländern, über 40.000 bezahlte Lernende weltweit und über 500.000 glückliche Berufstätige. Unsere 360-Grad-Karriereunterstützung, kombiniert mit dem Lernen und Brainstorming mit globalen Studenten, ermöglicht es Ihnen, das Beste aus Ihrer Lernerfahrung zu machen.

Was sind Klassen und Objekte in Python?

Eine Klasse ist eine Vorlage oder ein Bauplan, der die Eigenschaften und Funktionen einer Entität bindet. In Python wird das Schlüsselwort class verwendet, um eine Klasse zu definieren. Alle Entitäten oder Objekte mit ähnlichen Attributen können unter eine einzige Klasse gestellt werden und sind für die Mitgliedsfunktionen zugänglich.
Ein Objekt ist eine Instanz einer Klasse. Sobald eine Klasse erstellt ist, erhalten die Objekte alle Informationen dieser Klasse. Es ist wie eine Kopie der angesehenen Klasse mit den tatsächlichen Werten. Ein Objekt wird durch drei Faktoren kategorisiert:
A. Bundesland
B. Verhalten
C. Identität

Welchem ​​Programmierparadigma folgt Python?

Es gibt vier große unterscheidbare Paradigmen, gefolgt von Python – objektorientiert, prozedural, funktional und imperativ. Python unterstützt stark objektorientierte Konzepte; es ist jedoch keine rein objektorientierte Programmiersprache.
Der Grund für die Unterstützung verschiedener Programmierparadigmen liegt darin, dass sie merklich von einigen Skripten wie CoffeeScript und objektorientierten Programmiersprachen wie Ruby beeinflusst werden. Es lässt sich auch mit Sprachen wie R kombinieren, um die Effizienz und Rechenleistung zu steigern.
Als Multiparadigmensprache gilt Python als eine der vielseitigsten Sprachen. Es wird häufig für Entwicklung, Datenanalyse, Web Scraping und Automatisierung verwendet.

Was sind Zugriffsmodifikatoren in Python?

Ähnlich wie in anderen objektorientierten Programmiersprachen hat eine Klasse in Python auch drei Zugriffsmodifikatoren:
A. Öffentlicher Zugriffsmodifikator : Auf die als öffentlich angegebenen Klassenmitglieder kann direkt durch jede Funktion zugegriffen werden, dh durch Mitgliedsfunktionen sowie Nicht-Mitgliederfunktionen. Wenn kein Zugriffsspezifizierer angegeben ist, werden alle Klassenmitglieder vom Compiler standardmäßig als öffentliche Mitglieder betrachtet.
B. Privater Zugriffsmodifikator : Diese Klassenmitglieder sind vor anderen Klassenmitgliedern verborgen. Auf sie kann nur von den Mitgliedsfunktionen der Klasse zugegriffen werden, in der sie definiert sind.
C. Protected Access Modifier : Auf die als geschützt angegebenen Klassenmember kann nur von den Memberfunktionen derselben Klasse zugegriffen werden, und es wird ein Fehler ausgegeben, wenn versucht wird, von außerhalb der Klasse zuzugreifen. Der einzige große Unterschied zwischen dem privaten und dem geschützten Zugriffsbezeichner besteht darin, dass geschützte Mitglieder vererbt werden können, während private Mitglieder nicht vererbt werden können.