Objektorientierte Programmierung in Python
Alex Yarosh
Content Quality Analyst @ DataCamp
self als erstes Argumentself.___ zugreifen
class MyClass:
# Funktionsdefinition in der Klasse
# erstes Argument ist self
def my_method1(self, other_args...):
# hier Dinge tun
def my_method2(self, my_attr):
# Attribut durch Zuweisung erstellt
self.my_attr = my_attr
...
__init__() Methode wird jedes Mal aufgerufen, wenn ein Objekt erstellt wird.class Customer: def __init__(self, name): self.name = name # <--- Das .name Attribut erstellen und auf den name Parameter setzen print("Die __init__ Methode wurde aufgerufen")cust = Customer("Lara de Silva") #<--- __init__ wird implizit aufgerufen print(cust.name)
Die __init__ Methode wurde aufgerufen
Lara de Silva
class Customer: def __init__(self, name, balance): # <-- balance Parameter hinzugefügtself.name = name self.balance = balance # <-- balance Attribut hinzugefügt print("Die __init__ Methode wurde aufgerufen")cust = Customer("Lara de Silva", 1000) # <-- __init__ wird aufgerufen print(cust.name) print(cust.balance)
Die __init__ Methode wurde aufgerufen
Lara de Silva
1000
class Customer: def __init__(self, name, balance=0): #<-- Standardwert für balance setzenself.name = name self.balance = balance print("Die __init__ Methode wurde aufgerufen")cust = Customer("Lara de Silva") # <-- balance nicht explizit angebenprint(cust.name) print(cust.balance) # <-- Attribut wird trotzdem erstellt
Die __init__ Methode wurde aufgerufen
Lara de Silva
0
class MyClass:
def my_method1(self, attr1):
self.attr1 = attr1
...
def my_method2(self, attr2):
self.attr2 = attr2
...
obj = MyClass()
obj.my_method1(val1) # <-- attr1 erstellt
obj.my_method2(val2) # <-- attr2 erstellt
class MyClass: def __init__(self, attr1, attr2): self.attr1 = attr1 self.attr2 = attr2 ...# Alle Attribute werden erstellt obj = MyClass(val1, val2)
__init__() initialisieren__init__() initialisierenCamelCase für Klassen, lower_snake_case für Funktionen und Attribute
__init__() initialisierenCamelCase für Klassen, lower_snake_case für Funktionen und Attribute
self als self belassenclass MyClass:
# Funktioniert, ist aber nicht empfohlen
def my_method(kitty, attr):
kitty.attr = attr
__init__() initialisierenCamelCase für Klassen, lower_snake_case für Funktionen und Attribute
self ist selfclass MyClass:
"""Diese Klasse macht nichts"""
pass
Objektorientierte Programmierung in Python