Einführung in objektorientierte Programmierung in Python
George Boorman
Curriculum Manager, DataCamp
self als erstes Argumentself.___ auf Attribute verweisenclass MyClass: # Funktionsdefinition in der Klasse # erstes Argument ist self def my_method1(self, other_args...): # hier passiert etwasdef my_method2(self, my_attr): # Attribut wird durch Zuweisung erstellt self.my_attr = my_attr ...
__init__() wird bei jeder Objekterstellung aufgerufen__methodname__-Syntaxclass Customer:
def __init__(self, name):
# .name-Attribut erstellen und mit Parameter name setzen
self.name = name
print("The __init__ method was called")
# __init__ wird implizit aufgerufen
cust = Customer("Lara de Silva")
print(cust.name)
The __init__ method was called
Lara de Silva
class MyClass: def my_method1(self, attr1): self.attr1 = attr1 ... def my_method2(self, attr2): self.attr2 = attr2 ...obj = MyClass() # attr1 erstellt obj.my_method1(val1) # attr2 erstellt obj.my_method2(val2)
class MyClass: def __init__(self, attr1, attr2): self.attr1 = attr1 self.attr2 = attr2 ...# Alle Attribute werden erstellt obj = MyClass(val1, val2)
class Customer: # balance-Argument hinzufügen def __init__(self, name, balance):self.name = name # balance-Attribut hinzufügen self.balance = balance print("The __init__ method was called")
# __init__ wird aufgerufen
cust = Customer("Lara de Silva", 1000)
print(cust.name)
print(cust.balance)
The __init__ method was called
Lara de Silva
1000
class Customer:
# Standardwert für balance setzen
def __init__(self, name, balance=0):
self.name = name
# Neues Attribut zuweisen
self.balance = balance
print("The __init__ method was called")
# balance nicht explizit angeben cust = Customer("Lara de Silva")print(cust.name) # Das balance-Attribut wird trotzdem erstellt print(cust.balance)
The __init__ method was called
Lara de Silva
0
__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 beibehaltenclass MyClass:
# Funktioniert, ist aber nicht empfohlen
def my_method(george, attr):
george.attr = attr
__init__() initialisierenCamelCase für Klassen, lower_snake_case für Funktionen und Attribute
self ist selfclass MyClass:
"""Diese Klasse macht nichts"""
pass
Einführung in objektorientierte Programmierung in Python