Programmieren für Anfänger in Python/OO-Design

Aus PlusPedia
Wechseln zu: Navigation, Suche

Hier ein Einstieg zum Design:

Coin Übrigens: Die PlusPedia ist NICHT die Wikipedia.
Wir sind ein gemeinnütziger Verein, PlusPedia ist werbefrei. Wir freuen uns daher über eine kleine Spende!

1 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.

Diesen Artikel melden!
Verletzt dieser Artikel deine Urheber- oder Persönlichkeitsrechte?
Hast du einen Löschwunsch oder ein anderes Anliegen? Dann nutze bitte unser Kontaktformular

PlusPedia Impressum
Diese Seite mit Freunden teilen:
Mr Wong Digg Delicious Yiggit wikio Twitter
Facebook




Bitte Beachte:
Sämtliche Aussagen auf dieser Seite sind ohne Gewähr.
Für die Richtigkeit der Aussagen übernimmt die Betreiberin keine Verantwortung.
Nach Kenntnissnahme von Fehlern und Rechtsverstößens ist die Betreiberin selbstverständlich bereit,
diese zu beheben.

Verantwortlich für jede einzelne Aussage ist der jeweilige Erstautor dieser Aussage.
Mit dem Ergänzen und Weiterschreiben eines Artikels durch einen anderen Autor
werden die vorhergehenden Aussagen und Inhalte nicht zu eigenen.
Die Weiternutzung und Glaubhaftigkeit der Inhalte ist selbst gegenzurecherchieren.


Typo3 Besucherzähler - Seitwert blog counter
java hosting vpn norway