Re: [Python-de] Newbie-FRage: warum Klassen?
Was ist der Unterschied, bzw. wo liegt der Vorteil?
Das ist eine Frage, ob man Objektorientierte Programmierung mag oder nicht.
Kurze Antworten erzeugen sofort Gegenfragen! Nach meinen bisherigen "internen Fragezeichen" zu urteilen, mag ich wohl keine Objektorientierte Programmierung. Verbaue ich mir jetzt einen entscheidenden Weg? Bisher habe ich das so verstanden: Wenn ich ein Klasse aufrufe, erzeuge ich eine Instanz. Bleibt die mir erhalten, muß ich sie immer wieder erzeugen, blockiert bei 300maligem Aufrufen der Klasse meine Anwendung? Ist das schneller oder langsamer als eine Funktion? Könnte ich nicht genauso gut 300mal meine Funktion aufrufen? Bitte noch ein paar mehr Hinweise, damit ich es verstehen kann. Danke Barbara _______________________________________________ Python-de maillist - Python-de@starship.python.net http://starship.python.net/mailman/listinfo/python-de
Barbara,
Wenn ich ein Klasse aufrufe, erzeuge ich eine Instanz. Bleibt die mir erhalten, muß ich sie >immer wieder erzeugen, blockiert bei 300maligem Aufrufen der Klasse meine Anwendung?
Bitte laß uns Sprachregeln verinbaren: das Aufrufen einer Klasse heißt "instanziieren" Dabei werden Objekte erzeugt.
Ist das schneller oder langsamer als eine Funktion? Könnte ich nicht genauso gut 300mal >meine Funktion aufrufen?
Was nun wann wieviel schneller ist, hängt von der Sprache, der Implementierung und der Funktion selber ab. Aber die Anwendungsgebiete sind komplett unterschiedlich: Eine Klasse kann als Sammelbecken für Funktionen (heißen dann Methoden) und Werte (heißen dann Attribute) gesehen werden. also: class auto: def __init__(self, besitzer="der Chef"): self.besitzer=besitzer def geraeusch(self): print "brumm, brumm" meins=auto("Harald") Hier ist "besitzer" ein Attribut, "geraeusch" eine Methode. Das spannende an den Klassen ist, daß diese abgeleitet werden können: class kaputtesauto(auto): def gerausch(self): auto.gerausch() print "quitsch" kaputtesauto hat weiterhin die automatik, daß mit kaputtesauto(besitzer="Karl der Käfer") ein korrektes Auto-Objekt incl. Besitzerfeststellung gebaut werden kann. In Python verschwimmt das mit Funktion / Methode etwas auch dadurch, daß Module "Modulobjekte" sein können und damit auf Modulebene definierte Funktioenen ganz natürlich sind. Gruß Harald _______________________________________________ Python-de maillist - Python-de@starship.python.net http://starship.python.net/mailman/listinfo/python-de
participants (2)
-
Barbara Griem -
Harald Armin Massa