Python 3 kennt mehrer Arten von Methoden
jede Klasse ist selbst ein Objekt in Python
jede Methode ist ein eigenes Objekt in Python
Objekt-Methoden
Können nur nach Instanzierung angesprochen werden
bekommen Pointer auf das Objekt übergeben
die „normalen“ Methoden
Zugriff auf Klassen- und Objektvariablen
class static_test:
my_string = "Peter"
def ausgabe(self):
print("Ausgabe", self.my_string)
def caller(self):
self.ausgabe()
a = static_test()
a.ausgabe()
Static Method
Methoden die zwar Teil einer Klasse sind, aber weder Informationen über das Objekt, noch über die Klasse benötigen von der sie Teil sind
Methode kann sowohl über die Klasse, als auch über ein Objekt aufgerufen werden
Kein Zugriff auf Objekt-/Klassenvariablen
class static_test:
my_string = "Peter"
@staticmethod
def ausgabe():
print("Ausgabe")
def caller(self):
self.ausgabe()
static_test.ausgabe()
a = static_test()
a.ausgabe()
Class Method
Methoden die an die Klasse „gebunden“ sind
Können über Klasse oder über Objekt aufgerufen werden
bekommen eine Referenz auf die Klasse als ersten Parameter übergeben
Zugriff auf Klassenvariablen
class static_test:
my_string = "Peter"
@classmethod
def ausgabe(cls):
print("Ausgabe", cls.my_string)
def caller(self):
self.ausgabe()
static_test.ausgabe()
a = static_test()
a.ausgabe()