Skip to content

Commit 696ba5b

Browse files
committed
OOP1: statische Methode
1 parent a44b62a commit 696ba5b

1 file changed

Lines changed: 11 additions & 10 deletions

File tree

Level_06/OOP1.py

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -66,22 +66,23 @@ class Calculator:
6666
PI = 3.14
6767
E = 2.71
6868

69-
def multiply_by_pi(self, number):
69+
@classmethod
70+
def multiply_by_pi(cls, number):
7071
"""
71-
Dies ist eine Instanzmethode.
72-
Dies lässt sich daran erkennen, dass der erste Parameter `self` ist.
73-
Dieses `self` ist eine Referenz auf das aktuelle Objekt.
72+
Dies ist eine statische Methode mit Klassenreferenz.
73+
Dies lässt sich daran erkennen, dass der erste Parameter `cls` ist
74+
und an dem Dekorator `@classmethod`.
75+
Dieses `cls` ist eine Referenz auf die Klasse.
7476
Da Variablennamen nur innerhalb von Funktionen und Modulen
7577
aufgelöst werden, ist dies nötig.
7678
"""
77-
return number * self.PI
79+
return number * cls.PI
7880

79-
def multiply_by_e(self, number):
80-
return number * self.E
81+
@classmethod
82+
def multiply_by_e(cls, number):
83+
return number * cls.E
8184

82-
c = Calculator() # Instanziierung
83-
print(c.multiply_by_pi(5)) # Aufruf der Methode
84-
# Achtung: Was nicht funktioniert: Calculator.multiply_by_pi(5)
85+
print(Calculator.multiply_by_pi(5)) # Aufruf der Methode
8586

8687
class Thing:
8788
"""

0 commit comments

Comments
 (0)