4.3 KiB
30 Tage Python: Tag 21 - Klassen und Objekte (OOP)
Autor:
Asabeneh Yetayeh
Zweite Edition: Juli 2021
📘 Tag 21
Klassen und Objekte
Python ist eine objektorientierte Programmiersprache (OOP). Alles in Python ist ein Objekt mit seinen Eigenschaften (Attributen) und Methoden. Eine Klasse ist wie ein "Bauplan" oder eine Konstruktionszeichnung zur Erstellung von Objekten. Wir instanziieren eine Klasse, um ein Objekt zu erzeugen.
Eine Klasse erstellen
Wir nutzen das Schlüsselwort class. Klassennamen werden üblicherweise in CamelCase geschrieben.
# Syntax
class ClassName:
# Code hier
Ein Objekt erstellen
class Person:
pass
p = Person() # Erstellt eine Instanz der Klasse Person
Der Klassen-Konstruktor (init)
Die __init__-Methode ist eine spezielle Funktion, die automatisch aufgerufen wird, wenn ein neues Objekt erstellt wird. Sie initialisiert die Attribute des Objekts. Der Parameter self bezieht sich auf die aktuelle Instanz der Klasse.
class Person:
def __init__(self, firstname, lastname):
self.firstname = firstname
self.lastname = lastname
p = Person('Asabeneh', 'Yetayeh')
print(p.firstname) # Asabeneh
Methoden eines Objekts
Methoden sind Funktionen, die innerhalb einer Klasse definiert sind und auf das Objekt angewendet werden können.
class Person:
def __init__(self, firstname, lastname, age):
self.firstname = firstname
self.lastname = lastname
self.age = age
def info(self):
return f'{self.firstname} ist {self.age} Jahre alt.'
p = Person('Asabeneh', 'Yetayeh', 250)
print(p.info())
Vererbung (Inheritance)
Vererbung erlaubt es uns, eine Klasse zu definieren, die alle Methoden und Eigenschaften einer anderen Klasse (Elternklasse) übernimmt.
class Student(Person): # Student erbt von Person
def __init__(self, firstname, lastname, age, student_id):
super().__init__(firstname, lastname, age) # Ruft den Konstruktor der Elternklasse auf
self.student_id = student_id
s = Student('Eyob', 'Yetayeh', 30, 'S12345')
print(s.info()) # Nutzt die Methode von Person
💻 Übungen - Tag 21
Level 1
- Erstelle eine Klasse namens
Statistics. Sie soll eine Liste von Zahlen entgegennehmen und Methoden für folgende statistische Berechnungen enthalten:count(),sum(),min(),max(),range(),mean(),median(),mode(),std()(Standardabweichung),var()(Varianz).- Die Methode
describe()soll eine Zusammenfassung aller Werte ausgeben.
Level 2
- Erstelle eine Klasse
PersonAccount.- Eigenschaften:
firstname,lastname,incomes(Menge aus Einkommen & Beschreibung),expenses(Menge aus Ausgaben & Beschreibung). - Methoden:
total_income(),total_expense(),account_info(),add_income(),add_expense(),account_balance().
- Eigenschaften:
🎉 HERZLICEN GLÜCKWUNSCH! 🎉
