Python -FAQ: Was ist objektorientierte Programmierung?
Die objektorientierte Programmierung erleichtert das Hinzufügen neuer Typen zu einem Programm (während die prozedurale Programmierung das Hinzufügen neuer Prozeduren erleichtert).
Daher ist die objektorientierte Programmierung vorteilhaft, wenn auch eine Weise programmiert werden soll, die viel von Typen Gebrauch macht, bei der also voraussichtlich häufig Typen definiert werden.
In Python werden Typen durch Klassen beschrieben.
Das folgende Beispiel zeigt, wie einfach es in Python ist, einen neuen Typ hinzuzufügen. Durch die class-Anweisung wird der Typ ›Planet‹ hinzugefügt.
- Beispiel
class Planet:
def __str__( self ):
return "Erde"
Der Typ eines Objekts ›Planet()‹ der neuen Klasse ist nun ›Planet‹ (aus dem Modul ›__main__‹).
- Beispiel
print( type( Planet() ))
<class '__main__.Planet'>
Die Methode ›__str__‹ liefert für Objekte schon vorhandener Klassen eine Textdarstellung.
- Beispiel
print( max.__str__() )
<built-in function max>
Für das Objekt ›Planet()‹ unserer neuen Klasse ›Planet‹ liefert die Methode ›__str__‹ den von uns bei der Definition der Methode festgelegten Wert »Erde«.
- Beispiel
print( Planet().__str__() )
Erde
Wäre ›str‹ hingegen eine Prozedur (eine Funktion und keine Methode), die in einer fremden Bibliothek definiert ist, so wäre es unmöglich oder sehr schwierig, sie für einen neuen Typ zu erweitern.
Wir haben also auf einfache Weise einen Typ hinzugefügt und die schon vorhandene Methode ›__str__‹ für diesen Typ erweitert.