PlusPedia wird derzeit technisch modernisiert. Aktuell laufen Wartungsarbeiten. Für etwaige Unannehmlichkeiten bitten wir um Entschuldigung; es sind aber alle Artikel zugänglich und Sie können PlusPedia genauso nutzen wie immer.
Neue User bitte dringend diese Hinweise lesen:
Anmeldung - E-Mail-Adresse Neue Benutzer benötigen ab sofort eine gültige Email-Adresse. Wenn keine Email ankommt, meldet Euch bitte unter NewU25@PlusPedia.de.
Hinweis zur Passwortsicherheit:
Bitte nutzen Sie Ihr PlusPedia-Passwort nur bei PlusPedia.
Wenn Sie Ihr PlusPedia-Passwort andernorts nutzen, ändern Sie es bitte DORT bis unsere Modernisierung abgeschlossen ist.
Überall wo es sensibel, sollte man generell immer unterschiedliche Passworte verwenden! Das gilt hier und im gesamten Internet.
Aus Gründen der Sicherheit (PlusPedia hatte bis 24.07.2025 kein SSL | https://)
Bei PlusPedia sind Sie sicher: – Wir verarbeiten keine personenbezogenen Daten, erlauben umfassend anonyme Mitarbeit und erfüllen die Datenschutz-Grundverordnung (DSGVO) vollumfänglich. Es haftet der Vorsitzende des Trägervereins.
PlusPedia blüht wieder auf als freundliches deutsches Lexikon.
Wir haben auf die neue Version 1.43.3 aktualisiert.
Wir haben SSL aktiviert.
Hier geht es zu den aktuellen Aktuelle Ereignissen
Programmieren für Anfänger in Python/OO-Design/Ein Quadrat ist KEIN Rechteck
Man lernt: Ist-Ein - Dass dies ein guter Ansatz wäre um Objekte zu definieren.
Text
Es ist sicherlich im Allgemeinen richtig.
Aber gerade in offensichtlichen Fällen dann doch nicht.
In der OO ist ein Quadrat KEIN Rechteck - und ein Kreis keine Ellipse - und auch nicht umgekehrt:
Hier ein Beispielprogramm zur Verdeutlichung:
Man müsste hierzu wohl noch ein paar Takte sagen - aber die Tendenz ist korrekt.
class CRechteck:
"Klasse für ein Rechteck"
iBreite = 0;
iLaenge = 0;
def __init__(self):
pass;
pass; #enddef
def SetBreite(self, iNeueBreite): #begin
"Ändert die Breite"
print("CRechteck - SetBreite ", iNeueBreite)
self.iBreite = iNeueBreite;
pass; #enddef
def SetLaenge(self, iNeueLaenge): #begin
"Ändert die Länge"
print("CRechteck - SetLaenge ", iNeueLaenge)
self.iLaenge = iNeueLaenge;
pass; #enddef
def Flaeche(self): # return double # begin
print ("Aufruf in CRechteck - Breite=", self.iBreite, "Länge=", self.iLaenge, "Fläche =", self.iBreite * self.iLaenge);
return self.iBreite * self.iLaenge;
pass; #enddef
pass; #endclass
def VerdoppleBreiteUndZeigeFlaeche(Rechteck) : # Typ CRechteck begin
print("Ich verdopple die Breite eines Rechteckes und zeige die Fläche an");
if (not isinstance(Rechteck, CRechteck)):
print("Übergebene Variable ist kein Rechteck!");
print("");
return;
print("Übergebene Variable ist ein Rechteck!");
print ("Fläche vorher", Rechteck.Flaeche());
Rechteck.SetBreite(Rechteck.iBreite * 2);
print ("Fläche nachher", Rechteck.Flaeche());
print("");
pass; #enddef
class CKeinRechteck: pass;
KeinRechteck = CKeinRechteck();
VerdoppleBreiteUndZeigeFlaeche(KeinRechteck);
class CQuadrat(CRechteck): #begin
"Diese Klasse erweitert das Recheck zu einem Quadrat"
def SetBreite(self, iNeueBreite): #begin
"Ändert die Breite"
print("CQuadrat - SetBreite ", iNeueBreite)
self.iLaenge = iNeueBreite;
self.iBreite = iNeueBreite;
pass; #enddef
def SetLaenge(self, iNeueLaenge): #begin
"Ändert die Länge"
print("CQuadrat - SetLaenge ", iNeueLaenge)
self.iLaenge = iNeueLaenge;
self.iBreite = iNeueLaenge;
pass; #enddef
pass; #endclass
Rechteck = CRechteck();
Rechteck.SetBreite(5);
Rechteck.SetLaenge(15);
print(Rechteck.Flaeche());
Quadrat = CQuadrat();
Quadrat.SetBreite(5);
Quadrat.SetLaenge(15);
print(Quadrat.Flaeche());
print("issubclass(CQuadrat, CRechteck)", issubclass(CQuadrat, CRechteck));
print("isinstance(CQuadrat, CRechteck)", isinstance(CQuadrat, CRechteck));
print("isinstance(Quadrat, CQuadrat)", isinstance(Quadrat, CQuadrat));
print("isinstance(Quadrat, CRechteck)", isinstance(Quadrat, CRechteck));
print("");
print("So nun zum Verdoppeln");
VerdoppleBreiteUndZeigeFlaeche(Rechteck);
print("");
VerdoppleBreiteUndZeigeFlaeche(Quadrat);
print("");
print ("Verhält sich so ein Rechteck?")
Links und Quellen
Siehe auch
Weblinks
Quellen
Literatur
Einzelnachweise
Andere Lexika
Wikipedia kennt dieses Lemma (Programmieren für Anfänger in Python/OO-Design/Ein Quadrat ist KEIN Rechteck) vermutlich nicht.