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() | ||
</ | </ | ||