Klassenaufbau: Attribute und Methoden

Einführung in objektorientierte Programmierung in Python

George Boorman

Curriculum Manager, DataCamp

Eine Customer-Klasse

class Customer:

# Code for class goes here
pass
  • class <name>: startet eine Klassendefinition
  • Code innerhalb der Klasse ist eingerückt
  • Mit pass erstellst du eine „leere“ Klasse
c_one = Customer()
c_two = Customer()
  • Mit ClassName() erstellst du ein Objekt der Klasse ClassName
Einführung in objektorientierte Programmierung in Python

Methoden zu einer Klasse hinzufügen

class Customer:  

def identify(self, name): print("I am Customer " + name)
  • Methodendefinition = Funktionsdefinition innerhalb einer Klasse
  • self ist das erste Argument in der Methodendefinition
cust = Customer()
cust.identify("Laura")
I am Customer Laura
  • self beim Aufruf einer Objektmethode weglassen
Einführung in objektorientierte Programmierung in Python
class Customer:  
    def identify(self, name):
        print("I am Customer " + name)

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

Was ist self?

  • Klassen sind Vorlagen
  • self steht als erstes Argument jeder Methode
  • self steht für ein (noch nicht erstelltes) Objekt
  • cust.identify("Laura") wird als Customer.identify(cust, "Laura") interpretiert
Einführung in objektorientierte Programmierung in Python

Wir brauchen Attribute

  • OOP bündelt Daten mit Methoden, die darauf arbeiten
    • Der Name von Customer sollte ein Attribut sein

 

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

Einführung in objektorientierte Programmierung in Python

Ein Attribut zur Klasse hinzufügen

class Customer:  
    # Set the name attribute of an object to new_name
    def set_name(self, new_name):

# Create an attribute by assigning a value # Will create .name when set_name is called self.name = new_name
# Create an object # .name doesn't exist here yet cust = Customer()
# .name is created and set to "Lara de Silva" cust.set_name("Lara de Silva")
print(cust.name)
Lara de Silva
Einführung in objektorientierte Programmierung in Python

Alte Version

class Customer:  



    # Using a parameter
    def identify(self, name):
        print("I am Customer" + name)
cust = Customer()

cust.identify("Eris Odoro") 
I am Customer Eris Odoro 

Neue Version

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

# Using .name from the object it*self* def identify(self): print("I am Customer" + self.name)
cust = Customer()
cust.set_name("Rashid Volkov")
cust.identify()
I am Customer Rashid Volkov
Einführung in objektorientierte Programmierung in Python

Lass uns üben!

Einführung in objektorientierte Programmierung in Python

Preparing Video For Download...