* Python 3 kennt mehrer Arten von Methoden
* die verschiedenen Arten enstehen durch Nutzung unterschiedlicher Dekoratoren
* 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()