Da meinte _blackjack_ , das wäre mit Classes besser gelöst.
Nun habe ich mich mit Classes ein wenig befasst und stehe dennoch auf dem Schlauch und sehe nicht, wie ich die Stuktur verbessern könnte.
Ich poste mal die Funktion, welche die Tastenabfrage aufruft und frag mich, wie ich die Parameter per Class übergeben könnte.
Wenn ich die Werte, welche ich per Taster übergebe, rufe ich die Variablen per xyz.get() auf.
Wenn ich hingegen eine Klasse verwenden würde, müsste ich doch auch def get xyz(self) festlegen.
So richtig sehe ich den Ansatz noch nicht.
Wenn ich also im gegebenen Beispiel per Tastenfunktion einen Eingabewert, einen Ausgabewert (wenn erfolgreich abgespeichert ">>> Pipapo wurde gespeichert") und einen letzten Wert (um zu sehen, ob der Wert nicht schon erfasst war) übergebe, sehe ich noch nicht den richtigen Ansatz um eine Klasse zu verwenden.
Ich hoffe, meine Fragestellung ist klar genug und nicht zu doof.
Danke vorab für eure Unterstützung!
Gruß, Klaus
Code: Alles auswählen
def tast_neu_wort (eg_neu_wort, ag_neu_wort, letztes_wort, feld_ag_neu_wort):
hole_neues_wort = eg_neu_wort.get()
letzt_wort = letztes_wort.get()
n_wort = str(hole_neues_wort)
# print(letzt_wort, " - ", n_wort)
if (n_wort == letzt_wort):
text= " " + n_wort + " schon erfasst"; nw_farb="orange"
elif (len(n_wort) < 3):
text= " " + n_wort + " ist zu kurz"; nw_farb="orange"
else:
up_text = ">>> " + n_wort; nw_farb="lightblue"
text = up_text.upper()
letztes_wort.set(n_wort)
nfile = 'woerter_neu.txt'
if size > 2000000:
pfad = ""
else:
pfad = "E:\\"
npathfile = pfad + nfile
# print(npathfile)
with open(npathfile, "a", encoding = "utf-8") as woerter:
woerter.write (n_wort)
woerter.write ("\n")
eg_neu_wort.set("")
ag_neu_wort.set(text)
feld_ag_neu_wort.config(bg=nw_farb)
entry = feld_eg_must
entry.focus_set()