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

Aus PlusPedia
Zur Navigation springen Zur Suche springen

Hier ein Einstieg zum Design:

Anfang

Mal angenommen unser Student möchte seine Fächer speichern:

class CStudent:
  i_anzahl_der_studenten = 0;
  def __init__(self, s_vorname, s_nachname): #begin
    self.s_vorname = s_vorname;
    self.s_nachname = s_nachname;
    self.s_matrikel_nr = None;
    self.liste_faecher = None;
  #enddef __init__
  def immatrikulieren(self):
      self.liste_faecher = [];
      self.i_anzahl_der_studenten = self.i_anzahl_der_studenten + 1;
  def AddFach(self, sFachName):
      self.liste_faecher.append(sFachName);
  def was_studierst_du(self):
      for s_fach in self.liste_faecher: #do begin
        print (s_fach);
      pass; #endfor
pass; #end class CStudent

student = CStudent("James", "Bond");
student.immatrikulieren();
student.AddFach("Python");
student.AddFach("Ana");
student.AddFach("Lina");
student.was_studierst_du();

Dies wäre der einfache Ansatz.

Wenn man jetzt ein wenig nachdenkt - dann kommt man ja zum Ergebnis, dass man in dem Fach ja vielleicht eine Klausur am 4.2.2012 schreiben wird - oder eine Note bekommt - oder dass Fach Termine hat - da läge es doch auf der Hand eine Klasse Fach zu defineiren:

class CFach:
    def __init__(self, s_fach_name):
      self.s_fach_name = s_fach_name;
      self.klausur_termin = None;
      self.klausur_note = None;
      self.liste_uebungspunkte = [];
      # ...
    #enddef __init__

  1. endclass CFach


class CStudent:
  i_anzahl_der_studenten = 0;
  def __init__(self, s_vorname, s_nachname): #begin
    self.s_vorname = s_vorname;
    self.s_nachname = s_nachname;
    self.s_matrikel_nr = None;
    self.liste_faecher = None;
  #enddef __init__
  def immatrikulieren(self):
      self.liste_faecher = [];
      self.i_anzahl_der_studenten = self.i_anzahl_der_studenten + 1;
  def AddFach(self, sFachName):
      fach = CFach(sFachName);
      self.liste_faecher.append(fach);
  def was_studierst_du(self):
      for fach in self.liste_faecher: #do begin
        print (fach.s_fach_name);
      pass; #endfor
pass; #end class CStudent

student = CStudent("James", "Bond");
student.immatrikulieren();
student.AddFach("Python");
student.AddFach("Ana");
student.AddFach("Lina");
student.was_studierst_du();


Der Aufruf ist derselbe:

student = CStudent("James", "Bond");
student.immatrikulieren();
student.AddFach("Python");
student.AddFach("Ana");
student.AddFach("Lina");
student.was_studierst_du();

Die interne Verarbeitung aber eine ganz andere.
Und die Zweite Variante hat natürlich mehr Potential als die Erste.