Hallo.
Könnt ihr mir bitte ein Projekte vorschlagen, welche auch dafür geeignet ist OOP zu lernen ?
Währe echt nett..
Und bitte nur Entwürfe die auch Sinnvoll sind und nicht sowas wie - "lern es einfach".
Danke im voraus.
Projekte vorschlagen..
Mr.White hat geschrieben:Hallo.
Könnt ihr mir bitte ein Projekte vorschlagen, welche auch dafür geeignet ist OOP zu lernen ?
Währe echt nett..
Und bitte nur Entwürfe die auch Sinnvoll sind und nicht sowas wie - "lern es einfach".
Danke im voraus.
Sowas hier koenntest du machen....
Code: Alles auswählen
#!/usr/bin/env python3
class Kunde():
def __init__(self, name, kontonummer, blz, kontostand):
self.name = name
self.kontonummer = kontonummer
self.bankleitzahl = blz
self.kontostand = kontostand
def einzahlen(self, betrag):
self.kontostand += betrag
self.ausgabe
def auszahlen(self, betrag):
self.kontostand -= betrag
self.ausgabe
def ausgabe(self):
print("Name:", self.name,"Kto.:", self.kontonummer, \
"BLZ.:", self.bankleitzahl, "Betrag:", self.kontostand, "Euro")
kunde1 = Kunde("Juergen", 10001, 500500, 230)
kunde1.ausgabe()
kunde1.einzahlen(12)
kunde1.ausgabe()
@Woddy: Das `self.ausgabe` in der Ein- und Auszahlmethode gehört da nicht hin und die 1 bei `kunde1` sollte da nicht stehen.
Die `ausgabe()`-Methode würde ich auch nicht in diese Klasse stecken. Man könnte der eine `__str__()`-Methode verpassen und Konto-Exemplare dann einfach mit `print()` ausgeben.
Zwischen den Methoden steht normalerweise eine Leerzeile und der Code auf Modulebene sollte in einer Funktion stehen.
Die `ausgabe()`-Methode würde ich auch nicht in diese Klasse stecken. Man könnte der eine `__str__()`-Methode verpassen und Konto-Exemplare dann einfach mit `print()` ausgeben.
Zwischen den Methoden steht normalerweise eine Leerzeile und der Code auf Modulebene sollte in einer Funktion stehen.
Danke für den Hinweis!BlackJack hat geschrieben:@Woddy: Das `self.ausgabe` in der Ein- und Auszahlmethode gehört da nicht hin und die 1 bei `kunde1` sollte da nicht stehen.
Die `ausgabe()`-Methode würde ich auch nicht in diese Klasse stecken. Man könnte der eine `__str__()`-Methode verpassen und Konto-Exemplare dann einfach mit `print()` ausgeben.
Zwischen den Methoden steht normalerweise eine Leerzeile und der Code auf Modulebene sollte in einer Funktion stehen.
@Woddy: Der Backslash in ausgabe ist überflüssig, weil die Klammern schon die zwei Zeilen miteinander verbinden. Und die Methode in den anderen Methoden einfach nur zu referenzieren bringt nichts. Die Zeilen gehören da sowieso nicht hin.
@Woddy: ich würde eher die folgende Struktur empfehlen:
Das ist flexibler, da nun ein beliebiger Kunde auf ein beliebiges Konto einzahlen darf. So hast Du auch eine bessere Trennung zwischen den Daten (Kunde, Konto) und den Aktionen gegen diese Daten.
Code: Alles auswählen
class Kunde: pass
class Konto: pass
def einzahlen(kunde, konto, betrag): pass