Python 05 Flashcards
Objekte
-Python unterstützt viele verschiedene Arten von Daten
1234 3.14159 “Hallo” [1, 5, 7, 11, 13]{ “CA”: “Kalifornien”, “MA”: “Massachusetts”}
-Jeder der obigen Punkte ist ein Objekt, und jedes Objekt hat:
einen Typ
eine interne Datenrepräsentation (primitiv oder zusammengesetzt)
eine Menge von Prozeduren für die Interaktion mit dem Objekt
-ein Objekt ist eine Instanz eines Typs:
1234 ist eine Instanz eines int
“hello” ist eine Instanz eines Strings
Object Oriented Programming
ALLES IN PYTHON IST EIN OBJEKT (und hat einen Typ)
- Sie können neue Objekte irgendeines Typs erstellen
- Sie können Objekte manipulieren
- Sie können Objekte zerstören
- explizit mit del oder einfach nur “vergessen”
- Python-System wird zerstörte oder unzugängliche Objekte zurückfordern
Definieren von Klassen
class Human: race = "Homosapoien" #Klassenattribute def \_\_init\_\_(self, name, height, age): self.name = name self.height = height self.age = age #Instanzattribute
def speak(self): print("I am a human") #Klassenmethode
Vorteil von Object Oriented Programming
- Bündeln Sie Daten zu Paketen zusammen mit Prozeduren, die sie über wohldefinierte Schnittstellen bearbeiten
- Teil-und-Herrschungs-Prinzip
- -> Implementieren und testen Sie das Verhalten jeder Klasse separat
- -> Verbesserte Modularität reduziert die Komplexität
- Klassen erleichtern die Wiederverwendung
- -> Viele Python-Module definieren neue Klassen
- -> Jede Klasse hat eine separate Umgebung (keine Kollision von Funktionsnamen)
- -> Die Vererbung ermöglicht es Unterklassen, eine ausgewählte Teilmenge des Verhaltens einer Oberklasse neu zu definieren oder zu erweitern
Klassenattribute
Class Shape:
#Hier Attribute definieren
-Attribute: Daten und Prozeduren, die zu einer Klasse gehören
-Datenattribute
Stellen Sie sich Daten wie andere Objekte vor, aus denen die Klasse besteht
Z.B. besteht eine Shape aus einigen Zahlen, die sie definieren.
-Methoden (prozedurale Attribute)
Stellen Sie sich Methoden als Funktionen vor, die nur mit dieser Klasse funktionieren
Wie mit dem Objekt interagiert werden soll
Z.B. können Sie einen Abstand zwischen zwei Koordinatenobjekten definieren, aber ein Abstand zwischen zwei Listenobjekten hat keine Bedeutung
Definieren wie Instanzen einer Klasse erstellt werden
- Wir müssen definieren, wie eine Instanz einer Klasse erzeugt werden kann
- Spezielle Methode namens __init__ verwenden, um Ihr Datenattribut zu initialisieren
- Datenvariablen einer Instanz einer Klasse werden als Instanzvariablen bezeichnet
- Stellen Sie kein Argument für self zur Verfügung, Python tut dies automatisch
Was ist eine Methode?
- Eine Methode ist ein prozedurales Attribut= Eine Funktion, die nur mit dieser Klasse arbeitet
- Python übergibt das Objekt immer als erstes Argument
- -> Konvention ist es, self als Namen des ersten Arguments aller Methoden zu verwenden
- Der “.” Operator wird verwendet, um auf ein beliebiges Attribut zuzugreifen
- -> Ein Datenattribut eines Objekts
- -> Eine Methode eines Objekts