Klassenaufbau: Attribute und Methoden

Objektorientierte Programmierung in Python

Alex Yarosh

Content Quality Analyst @ DataCamp

Eine einfache Klasse

class Customer:

# Code für die Klasse kommt hier
pass
  • class <name>: startet eine Klassendefinition
  • Code innerhalb der class ist eingerückt
  • Verwende pass, um eine "leere" Klasse zu erstellen
c1 = Customer()
c2 = Customer()
  • Verwende ClassName(), um ein Objekt der Klasse ClassName zu erstellen
Objektorientierte Programmierung in Python

Methoden zur Klasse hinzufügen

class Customer:  

    def identify(self, name):   
      print("Ich bin Kunde " + name)
  • Methodendefinition = Funktionsdefinition innerhalb der Klasse
  • Verwende self als 1. Argument in der Methodendefinition
cust = Customer()
cust.identify("Laura")
Ich bin Kunde Laura
  • Ignoriere self, wenn Methode auf ein Objekt aufgerufen wird
Objektorientierte Programmierung in Python
class Customer:  

    def identify(self, name):   
      print("Ich bin Kunde " + name)

cust = Customer()
cust.identify("Laura")

Was ist self?

  • Klassen sind Vorlagen, wie auf Daten eines bestimmten Objekts zugreifen?
  • self steht für ein bestimmtes Objekt in der Klassendefinition
  • sollte das erste Argument jeder Methode sein
  • Python kümmert sich um self, wenn Methode von einem Objekt aufgerufen wird:

cust.identify("Laura") wird interpretiert als Customer.identify(cust, "Laura")

Objektorientierte Programmierung in Python

Wir brauchen Attribute

  • Kapselung: Daten mit Methoden bündeln, die auf Daten wirken
  • Z.B. sollte der Name von Customer ein Attribut sein

  $$\text{\Large{Attribute werden durch Zuweisung (=) in Methoden erstellt}}$$

Objektorientierte Programmierung in Python

Attribut zur Klasse hinzufügen

class Customer:  
    # setze das Namensattribut eines Objekts auf new_name
    def set_name(self, new_name):

# Erstelle ein Attribut durch Zuweisung eines Werts self.name = new_name # <-- erstellt .name, wenn set_name aufgerufen wird
cust = Customer()                   # <--.name existiert hier noch nicht

cust.set_name("Lara de Silva") # <--.name wird erstellt und auf "Lara de Silva" gesetzt
print(cust.name) # <--.name kann verwendet werden
Lara de Silva
Objektorientierte Programmierung in Python

Alte Version

class Customer:  



    # Mit einem Parameter
    def identify(self, name):   
      print("Ich bin Kunde" + name)
cust = Customer()

cust.identify("Eris Odoro")
Ich bin Kunde Eris Odoro

Neue Version

class Customer:  
   def set_name(self, new_name): 
      self.name = new_name

    # Verwende .name vom Objekt selbst
    def identify(self):     
      print("Ich bin Kunde" + self.name)
cust = Customer()
cust.set_name("Rashid Volkov")
cust.identify()
Ich bin Kunde Rashid Volkov
Objektorientierte Programmierung in Python

Lass uns üben!

Objektorientierte Programmierung in Python

Preparing Video For Download...