Was ist OOP?

Einführung in objektorientierte Programmierung in Python

George Boorman

Curriculum Manager, DataCamp

Prozedurale Programmierung

 

  • Code als Abfolge von Schritten
  • Ideal für Datenanalyse

Treppe

1 Bildquelle: https://unsplash.com/@tateisimikito
Einführung in objektorientierte Programmierung in Python

In Sequenzen denken

 

Symbole: Person im Bett, dann Kaffee, dann Aktentasche

 

Verschiedene Symbole für viele Aktivitäten

Einführung in objektorientierte Programmierung in Python

Prozedurale Programmierung

 

  • Code als Abfolge von Schritten
  • Ideal für Datenanalyse

Objektorientierte Programmierung

 

  • Code als Interaktionen von Objekten
  • Ideal für Softwareentwicklung
  • Wartbarer und wiederverwendbarer Code!
Einführung in objektorientierte Programmierung in Python

Objekte

$$\Large{\text{Objekt = Daten + Funktionalität}}$$

Silhouette einer Person mit Laptop als Kundin/Kunde

                                                  Zustand – die Daten eines Objekts

                                                  Verhalten – die Funktionalität eines Objekts

Einführung in objektorientierte Programmierung in Python

Objekte in Python

  • Alles in Python ist ein Objekt
Objekt Typ
5 int
"Hello" str
pd.DataFrame() DataFrame
sum() function
... ...
Einführung in objektorientierte Programmierung in Python

Klassen als Blaupausen

  • Klasse: eine Blaupause für Objekte mit möglichen Zuständen und Verhaltensweisen

Kundenklasse

Einführung in objektorientierte Programmierung in Python

Klassen als Blaupausen

  • Klasse: eine Blaupause für Objekte mit möglichen Zuständen und Verhaltensweisen

Kundenklasse verzweigt zu Kundenobjekten

Einführung in objektorientierte Programmierung in Python

Klassen in Python

  • Python-Objekte desselben Typs verhalten sich gleich
  • lists sind eine Klasse
    • Erstellt mit kommaseparierten Werten [1, 2, 3, 4, 5]
    • Haben die gleichen Methoden, z. B. .append()
  • Mit type() die Klasse ermitteln
type([1, 2, 3, 4, 5])
<class 'list'>
Einführung in objektorientierte Programmierung in Python

Attribute und Methoden

Zustand ↔ Attribute
import pandas as pd
df = pd.DataFrame({"a": [1,2,3], 
                   "b": [4,5,6]})

# shape-Attribut df.shape
(3, 2)
  • Mit obj. auf Attribute und Methoden zugreifen
Verhalten ↔ Methoden
import pandas as pd
df = pd.DataFrame({"a": [1,2,3], 
                   "b": [4,5,6]})

# head-Methode df.head()
   a  b
0  1  4
1  2  5
2  3  6
Einführung in objektorientierte Programmierung in Python

Attribute und Methoden anzeigen

# Attribute und Methoden anzeigen
dir([1, 2, 3, 4])
['__add__',
 '__class__',
 '__contains__',
 '__delattr__', 
 ...
 'pop',
 'remove',
 'reverse',
 'sort']
# Attribute und Methoden anzeigen
dir(list)
['__add__',
 '__class__',
 '__contains__',
 '__delattr__', 
 ...
 'pop',
 'remove',
 'reverse',
 'sort']
Einführung in objektorientierte Programmierung in Python

Spickzettel

Begriff Definition
Klasse Eine Blaupause/Vorlage zum Erstellen von Objekten
Objekt Kombination aus Daten und Funktionalität; eine Instanz einer Klasse
Zustand Mit einem Objekt verknüpfte Daten, über Attribute zugewiesen
Verhalten Funktionalität eines Objekts, definiert über Methoden
Einführung in objektorientierte Programmierung in Python

Lass uns üben!

Einführung in objektorientierte Programmierung in Python

Preparing Video For Download...