Kapitel 10
Definition eigener Klassen
298
10.6 Statische Methoden
Statische Methoden einer Klasse können aufgerufen werden, ohne vorher eine Instanz die-
ser Klasse zu erzeugen. In einer Klassendefinition können durch einen Aufruf der Funktion
staticmethod() statische Methoden wie im nachfolgenden Beispiel erzeugt werden.
Meist verwendet man statische Methoden um eine Sammlung thematisch zusammengehö-
riger Operationen zu programmieren (Toolbox). Das folgende Skript definiert eine Toolbox
mit Methoden aus dem Bereich der Statistik.
Skript:
Die Klassendefinition weist einige Besonderheiten auf:
Es gibt keine __init__()-Methode; denn die Klasse besitzt keinerlei Attribute. Es kön-
nen zwar Objekte dieser Toolbox-Klasse erzeugt werden, aber sie bleiben immer im glei-
chen Zustand.
Bei der Definition der statischen Methoden wird in der Parameterliste kein Argument
self aufgeführt, das sonst bei normalen Methoden das aktuelle Objekt der Klasse reprä-
sentiert (
#1).
Die durch def-Anweisungen definierten Methoden werden durch einen Aufruf der Funk-
tion
staticmethod() zu statischen Methoden der Klasse (#2).
# statisch.py
class Statistik(object):
de f m itt e lwer t (s) : #1
if s:
return float(sum(s)) / len(s)
def spannweite(s):
# größte minus kleinste Zahl der Zahlenliste s
if s:
return max(s) - min(s)
def median(s):
if s:
s1 = sorted(s)
if len(s)%2 == 0: # Länge ist gerade
return (s1[len(s)/2-1] + s1[len(s)/2])/2.0
e l se:
return s1[(len(s)-1)/2]
mittelwert = staticmethod(mittelwert) #2
spannweite = staticmethod(spannweite)
median = staticmethod(median)

Get Python 3 - Lernen und professionell anwenden now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.