Seite 1 von 1

Projekte vorschlagen..

Verfasst: Dienstag 31. März 2015, 19:36
von Mr.White
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.

Re: Projekte vorschlagen..

Verfasst: Mittwoch 1. April 2015, 00:10
von Woddy
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()


Re: Projekte vorschlagen..

Verfasst: Mittwoch 1. April 2015, 00:36
von BlackJack
@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.

Re: Projekte vorschlagen..

Verfasst: Mittwoch 1. April 2015, 01:15
von Woddy
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.
Danke für den Hinweis!

Re: Projekte vorschlagen..

Verfasst: Mittwoch 1. April 2015, 07:15
von Sirius3
@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.

Re: Projekte vorschlagen..

Verfasst: Mittwoch 1. April 2015, 12:03
von kbr
@Woddy: ich würde eher die folgende Struktur empfehlen:

Code: Alles auswählen

class Kunde: pass
class Konto: pass

def einzahlen(kunde, konto, betrag): pass
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.