Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
|
python:method-types [2020/04/07 11:55] root angelegt |
python:method-types [2020/04/08 11:19] (aktuell) root [Objekt-Methoden] |
||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| * Python 3 kennt mehrer Arten von Methoden | * Python 3 kennt mehrer Arten von Methoden | ||
| * die verschiedenen Arten enstehen durch Nutzung unterschiedlicher Dekoratoren | * 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 " | ||
| + | * Zugriff auf Klassen- und Objektvariablen | ||
| + | |||
| + | <sxh python> | ||
| + | class static_test: | ||
| + | |||
| + | my_string = " | ||
| + | |||
| + | def ausgabe(self): | ||
| + | print(" | ||
| + | |||
| + | def caller(self): | ||
| + | self.ausgabe() | ||
| + | |||
| + | a = static_test() | ||
| + | a.ausgabe() | ||
| + | </ | ||
| Zeile 7: | Zeile 32: | ||
| * Methoden die zwar Teil einer Klasse sind, aber weder Informationen über das Objekt, noch über die Klasse benötigen von der sie Teil sind | * 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 | * Methode kann sowohl über die Klasse, als auch über ein Objekt aufgerufen werden | ||
| + | * Kein Zugriff auf Objekt-/ | ||
| <sxh python> | <sxh python> | ||
| - | class test: | + | class static_test: |
| + | my_string = " | ||
| @staticmethod | @staticmethod | ||
| - | def say_something(): | + | def ausgabe(): |
| - | print(" | + | print(" |
| + | |||
| + | def caller(self): | ||
| + | self.ausgabe() | ||
| + | |||
| + | static_test.ausgabe() | ||
| + | a = static_test() | ||
| + | a.ausgabe() | ||
| </ | </ | ||
| Zeile 22: | Zeile 56: | ||
| * Können über Klasse oder über Objekt aufgerufen werden | * Können über Klasse oder über Objekt aufgerufen werden | ||
| * bekommen eine Referenz auf die Klasse als ersten Parameter übergeben | * bekommen eine Referenz auf die Klasse als ersten Parameter übergeben | ||
| + | * Zugriff auf Klassenvariablen | ||
| <sxh python> | <sxh python> | ||
| - | class test: | + | class static_test: |
| - | + | ||
| - | @classmethod | + | |
| - | def ausgabe(cls): | + | |
| - | print(" | + | def ausgabe(cls): |
| + | print(" | ||
| + | |||
| + | def caller(self): | ||
| + | self.ausgabe() | ||
| + | |||
| + | static_test.ausgabe() | ||
| + | a = static_test() | ||
| + | a.ausgabe() | ||
| </ | </ | ||