Skip to content

3.1 Objektorientiertes Programmieren

Patrick edited this page Nov 25, 2024 · 9 revisions

Objektorientierte Programmierung (OOP) ist ein Programmierparadigma, das auf den Konzepten von "Objekten" und "Klassen" basiert. Diese Konzepte ermöglichen es, Software modularer, wartbarer und wiederverwendbarer zu gestalten.

Das ist ein sehr wichtiger Begriff zu verstehen, weil alles in Python ein Objekt ist. Dies schließt grundlegende Datentypen wie Zahlen und Zeichenketten, komplexere Strukturen wie Listen, Dictionaries und Klassen, sowie sogar Funktionen und Module ein.

class Auto: 
	# alle Klasse (außer Subklasse) benötigt __init__
	# wenn mann Eigenschaften initialisiern will
	def __init__(self, marke, modell): 
		self.marke = marke 
		self.modell = modell 
		
	def beschreiben(self): # self muss im jeden Methode übergeben werden
		print(f"Dies ist ein {self.marke} {self.modell}.") 
		
mein_auto = Auto("Tesla", "Model S") 
mein_auto.beschreiben() 

Dies ist ein Tesla Model S.

Subklassen

Eine Subklasse (oder abgeleitete Klasse) in Python ist eine Klasse, die von einer anderen Klasse (der Basisklasse oder Elternklasse) erbt. Das bedeutet, dass die Subklasse alle Attribute und Methoden der Basisklasse übernimmt und zusätzlich eigene Attribute und Methoden hinzufügen oder die geerbten Methoden überschreiben kann.

class ElektroAuto(Auto):
		# initialisieren Sie Subklasse Eigenschaften wie batterie_kapazitaet
		def __init__(self, marke, modell, batterie_kapazitaet):
			# super().__init__ initialisiert die Eingenschaften von Auto
			# und löst automatisch die richtige Klasse und Instanz auf
			super().__init__(marke, modell)  
			self.batterie_kapazitaet = batterie_kapazitaet 
		# Subklasse Methode
		def beschreiben(self): 
			super().beschreiben() # beschreiben() Methode von Auto Klasse
			print(f"Batteriekapazität von {self.batterie_kapazitaet} kWh.") 
			
mein_elektro_auto = ElektroAuto("Tesla", "Model 3", 75) mein_elektro_auto.beschreiben()

Dies ist ein Tesla Model 3.

Batteriekapazität von 75 kWh.

Was ist super()? In Python ist super() eine eingebaute Funktion, die ein temporäres Objekt der Oberklasse zurückgibt und es Ihnen ermöglicht, deren Methoden aufzurufen.

Lernzielkontrolle

1. Aufgabe

Ist das richtig, um eine Person-Klasse zu initialisieren? Wenn nicht, bitte korrigieren Sie es.

class Person(name, alter, beruf):

	def hallo(name, alter):
		print(f'Hallo, {name}. Du bist {alter} Jahre alt.')

	def job(name, beruf):
		print(f'{name} ist {beruf}.')
Lösung
class Person: # nur Klassen sind Parameter für class, nicht Eigenschaften 

    def __init__(self, name, alter, beruf): # Eigenschaften-Initialisierung

        self.name = name
        self.alter = alter
        self.beruf = beruf

    def hallo(self): # Methoden brauchen self

        print(f'Hallo, {self.name}. Du bist {self.alter} Jahre alt.')

    def job(self):
    
        print(f'{self.name} ist {self.beruf}.')

2. Aufgabe

Was ist die Ausgabe?

class Base:
	def greet(self):
		print("Hallo von der Basisklasse")

class Derived(Base):
	def greet(self):
		super().greet()
		print("Hallo von der abgeleiteten Klasse")

d = Derived()
d.greet()
Lösung

Hallo von der Basisklasse

Hallo von der abgeleiteten Klasse

Derived hat auch Base.greet() per super().greet(). Deswegen sieht man zwei Begrüßungen.

1 Set-Up

Mach dich bereit!

1.1 Python Installation

1.2 Befehlszeilenschnittstelle

1.2.1 PowerShell

1.2.2 Python pip

1.3 Code-Editor

1.4 Versionskontrolle

1.4.1 Git

1.4.2 GitHub

1.4.3 Obsidian

2 Grundlegend

Los geht's!

2.1 Rechner und Speicher

2.1.2 Datentypen

2.2 Kontrollfluss

2.3 Funktionen

2.3.4 Decorators

3 Fortgeschritten

Wie ein Profi!

3.2 Module

4 Wichtige Bibliotheken

Bibliothekskarte beantragen!

4.1 NumPy

4.2 pandas

5 Präsentationen

Letzte Strecke!

Clone this wiki locally