293
10.5
Methoden
10.4.4 Dynamische Erzeugung von Attributen
Python ermöglicht es, dass während des Programmlaufs neue Attribute dynamisch erzeugt
werden. Zur Demonstration definieren wir eine triviale Klasse ohne Attribute und Metho-
den, instanziieren ein Objekt und fügen zwei Attribute hinzu:
Dieses Feature ist eine potenzielle Fehlerquelle für Python-Skripte. Wenn nämlich beim
schreibenden Zugriff auf ein öffentliches Attribut eines Objektes der Attributname verse-
hentlich falsch geschrieben wird, gibt es keine Fehlermeldung. Stattdessen wird einfach ein
neues Attribut hinzugefügt.
10.5 Methoden
Methoden werden im Prinzip wie Funktionen definiert. Ein übliches Format ist:
Der Unterschied zu Funktionen liegt in folgenden Punkten:
Methoden sind vom Wesen her keine selbstständigen Objekte, sondern integraler
Bestandteil einer Klasse. Sie werden innerhalb einer Klassendeklaration definiert.
In der Liste der formalen Parameter der Methodendefinition bezeichnet der erste Para-
meter immer die Instanz, also das aktuelle Objekt. Der Name des ersten Parameters ist
beliebig aber üblicherweise verwendet man
self.
Eine Methode eines Objektes wird aufgerufen, indem man den Namen des Objektes
angibt, gefolgt von einem Punkt, dem Namen der Methode und in Klammern der Para-
meterliste. Format:
objekt.methode(arg1, ...). Dabei ist die Argumentliste des Auf-
rufs um eins kürzer als die Argumentliste der Methodendefinition. Das erste Argument
self wird weggelassen.
Als Namen für Methoden wählt man meist Tätigkeitswörter, die mit einem kleinen Buchsta-
ben beginnen. Beispiele:
drucke_Ergebnis(), berechneDurchmesser().
Namen für Zugriffsoperationen auf (private) Attribute werden nach folgendem Muster gebildet:
setAttribut(): Schreiben eines Attributswertes, z.B. setBetrag().
getAttribut(): Lesen eines Attributwertes, z.B. getBetrag().
In UML-Klassensymbolen lässt man diese elementaren Verwaltungsmethoden meist weg.
>>> class Ding(object):
p a s s
>>> kugel = Ding()
>>> kugel.masse = 100
>>> kugel.material = 'Gold'
>>> print(kugel.masse, kugel.material)
100 Gold
def methode (self, arg1, arg2, ...)

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.