Hilfe für *kwarks
Verfasst: Mittwoch 5. April 2023, 13:08
Ich versuche ja nebenbei immer meinen Code zu verbessern und vermute, dass ich mit "kwargs" Vereinfachungen erreiche, habe das aber (wiedrmal) nicht so ganz verstanden. Meine Rechentraineruser wählen durch Klick auf eine Kategorie ein von (zurzeit noch) 15 Kategorien aus.
Sie übergeben den Namen der Kategorie (slug) an die Funktion "main".
Die Aufgaben der einzelnen Kategorien werden jeweils in einer Funktion erzeugt.
Innerhalb von "main" ruft die Codezeile:
die Funktion "aufgaben" auf:
(Die Grundstruktur ist von @whitie)
und von da aus wird dann z.B. die Funktion "addieren" aufgerufen:
... ich gehe davon aus, dass man das mit "kwarks" stark vereinfachen kann - habe aber Angst was kaputt zu machen.
(Hoffentlich habe ich das gut genug erklärt )
Code: Alles auswählen
#Dict zum Zuordnen der kategorie.zeile zu den einzelnen Aufgaben:
AUFGABEN = {
1: addieren, 2: subtrahieren, 3: verdoppeln, 4: halbieren, 5: einmaleins, 6: kopfrechnen, 7: sachaufgaben, 8: zahlen, 9: malget10, 10: runden,
11: regeln, 12: geometrie, 13: einheiten, 14: figuren, 15: kommazahlen, 16: zuordnungen}
Code: Alles auswählen
path('<slug:slug>/', views.main, name='main')
Innerhalb von "main" ruft die Codezeile:
Code: Alles auswählen
typ, typ2, titel, text, pro_text, frage, variable, einheit, anmerkung, lsg, hilfe_id, ergebnis, parameter = aufgaben(kategorie.zeile, jg = user.jg, stufe = user.stufe, aufgnr = zaehler.aufgnr, typ_anf = typ_anf, typ_end = zaehler.typ_end, optionen = "")
Code: Alles auswählen
def aufgaben(kategorie_id, jg = 5, stufe = 3, aufgnr = 0, typ_anf = 0, typ_end = 0, typ = 0, typ2 = 0, optionen = "", eingabe = "", lsg = ""):
return AUFGABEN[kategorie_id](jg, stufe, aufgnr, typ_anf, typ_end, typ, typ2, optionen, eingabe, lsg)
und von da aus wird dann z.B. die Funktion "addieren" aufgerufen:
Code: Alles auswählen
def addieren(jg = 5, stufe = 3, aufgnr = 0, typ_anf = 0, typ_end = 0, typ = 0, typ2 = 0, optionen = "", eingabe = "", lsg = ""):
(Hoffentlich habe ich das gut genug erklärt )