next up previous contents index 6163656769
Next: 5.2 Vererbung Up: 5. Klassen Previous: 5. Klassen   Contents   Index

5.1 Attribute, Methoden, Instanzen, Klassen

Um den vielfältigen Begrifsswirrwarr ein wenig zu ordnen, noch ein paar Erklärungen in einer Übersicht:

  1. Atrribute heissen die Datenobjekte einer Klasse oder einer Instanz.
  2. Methoden heissen die Funktionen einer Instanz oder einer Klasse.
  3. Instanzen sind Abbilder einer Klasse, also »echte« Objekte, die Attribute und Methoden enthalten. Sowohl Attribute als auch Methoden müssen qualifiziert aufgerufen werden, das heisst in der Form instanzname.attributname bzw. instanzname.methodenname.
  4. Klassen sind quasi die Schablonen für Instanzen. Stellen Sie sich eine Klasse beispielsweise als einen Stempel vor, so sind Instanzen die mit Hilfe von Stempelfarbe erzeugten Abbilder des Stempels. Bedenken Sie aber, dass auch eine Klasse ein Objekt darstellt. Der Klassenname darf nicht mit den Namen irgendwelcher Instanzen verwechselt werden. Das heisst, es können auch die Klassen selbst mit ihrem Namen aufgerufen werden, wenn es denn notwendig ist.
Bei den Methoden wird zwischen gebundenen und ungebundenen unterschieden. Ein Beispiel:

class Spam:

  def drucke(self,message):

    print message

liefert unter dem Namen Spam eine Klasse, also den »Stempel«. Mit

object=Spam()
wird eine Instanz erzeugt. Die Methode

object.drucke('Hallo')
ist an diese Instanz gebunden. Obwohl die Druckmethode eigentlich zwei Parameter besitzt, muss nur ein Attribut übergeben werden, da self bereits belegt ist.

Es existiert aber wegen der vorangegangenen Definition der Klasse auch die Methode Spam.drucke. Bedenken Sie, dass hier beim qualifizierten Aufruf der Klassenname, und nicht der Instanzname, angegeben wird. Die Methode ist in dem Sinne ungebunden, weil noch nicht bekannt ist, auf welches Objekt sie wirkt. Daher muss bei einem Aufruf wie

Spam.drucke(object,'Hallo')
der self-Parameter durch den Namen einer existierenden Instanz belegt werden.


next up previous contents index 6163656769
Next: 5.2 Vererbung Up: 5. Klassen Previous: 5. Klassen   Contents   Index
Heiko Schroeder 2003-03-19