Python Tutorial - Klasse

Jinku Hu 30 Januar 2023
  1. Einführung in OOP
  2. Python Klassen und Objekte
  3. Python Klassenkonstruktoren
  4. Löschen von Attributen der Klasse
Python Tutorial - Klasse

Wir werden in diesem Abschnitt über die Grundlagen der objektorientierten Programmierung (OOP) von Python wie Klasse, Objekt sprechen.

Python ist eine objektorientierte Programmiersprache, mit anderen Worten, alles in Python ist ein Objekt.

Einführung in OOP

Die Grundlagen der objektorientierten Programmierung (OOP) bestehen aus den folgenden Terminologien:

  1. Klassen
  2. Daten-Mitglieder
  3. Methoden
  4. Objekte
  5. Konstrukteure
  6. Methode Überlastung
  7. Überlastung des Bedieners
  8. Vererbung
  9. Klasseninstanzen und Instanziierung

Python Klassen und Objekte

Eine Klasse kann als eine Gliederung für ein Objekt gedacht werden, wobei ein Objekt eine Sammlung von Daten-Member und die Member-Funktion ist.

Eine Klasse enthält Daten-Member (Variablen) und Memberfunktionen (Methoden), auf die über die Objekte dieser Klasse zugegriffen werden kann.

Erstellen einer Klasse

Eine Klasse wird mit dem Schlüsselwort class und dann dem Namen der Klasse erstellt:

Die Syntax ist wie folgt:

class NameofClass:
    # data members of the class
    # member functions of the class

Beispiel:

>>> class Waiter:
	name = "Andrew"
	def display():
		print('Waiter Class')	
>>> print(Waiter.display)
<function Waiter.display at 0x0359E270>
>>> print(Waiter.name)
Andrew

Dieses Beispiel erzeugt eine Klasse namens Waiter, die ein Datenelement name und eine Member-Methode display() enthält.

Erzeugen einer Objektinstanz einer Klasse

Eine Objektinstanz kann mit der folgenden Syntax erzeugt werden:

obj = className()

Beispiel:

>>> w = Waiter()
>>> print(w.name)
Andrew
>>> w.display()
Waiter Class

Man könnte hier sehen, dass das Objekt der Klasse Waiter verwendet wird, um mit dem Punkt-Operator auf die Member (Attribute) der Klasse zuzugreifen.

Attribute der Klasse

Zusammen mit Daten-Members und Member-Funktionen gibt es einige eingebaute Attribute einer Python-Klasse.

  1. __dict__: ist ein Dictionary, das den Namensraum der Klasse enthält.
  2. __doc__: ist der Dokumentationsstring der Klasse
  3. __name__: ist der Name der Klasse
  4. __Modul__: ist das Modul, in dem die Klasse definiert ist.
  5. __bases__: ist ein Tupel, das die Basisklasse enthält.

Auf diese Attribute kann mit Hilfe des Punkt-Operators zugegriffen werden.

Beispiel:

>>> class Waiter:
	"This is a waiter class"
	name="Andrew"
	def display():
		print("You are in waiter class")
>>> w = Waiter()

>>> print(w.__doc__)
This is a waiter class

>>> print(w.__dict__)
{}

>>> print(w.__module__)
__main__

Python Klassenkonstruktoren

Ein Konstruktor in Python OOP wird durch die Verwendung von __init__() erstellt. Diese eingebaute Methode ist eine spezielle Methode, die bei der Erzeugung eines Objekts der entsprechenden Klasse aufgerufen wird.

Konstruktoren werden verwendet, um die Daten-Member der Klasse zu initialisieren.

>>> class Waiter:
        def __init__(self, n):
            self.name=n
            self.age=20
        def display(self):
            print(self.name)

>>> w=Waiter('Rob')
>>> w.display()
Rob

Hier wird das Argument self in der Konstruktordefinition und auch in allen Klassenmethoden verwendet. Wenn Sie also eine Funktion wie w.display() aufrufen, wird diese als Waiter.display(w) interpretiert.

Löschen von Attributen der Klasse

Mit der Anweisung del können Sie die Attribute und Objekte einer Klasse löschen.

>>> w=Waiter('Rob')
>>> w.__dict__
{'name': 'Rob', 'age': 20}
>>> del w.age
>>> w.__dict__
{'name': 'Rob'}
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook