Ich hab mal eine Frage zu folgendem Problem.
Kurz vorab, ich bin noch recht frisch und versuche das Thema Klassen zu verstehen.
Aus diesem Grund habe ich mir ein kleines Programm überlegt:
Ein Tätowierer soll für einen Termin die genutzten Nadeln auswählen und abspeichern, damit er diese Daten beim erweitern des Tattoos wieder aufrufen kann und weiß was er benutzt hat.
In welcher form das gespeichert wird? soweit bin ich noch nicht und ist auch momentan noch nicht wichtig für mich, denn es geht um Folgendes.
Ich habe eine Klasse "Nadeln" erstellt.
In dieser sind in einer Methode die Attribute mit den Werten der Nadelspezifikationen in Listen gespeichert. In Listen, weil es feste Arten, Nadelanzahlen, Spitzenformen etc. gibt die dem Nutzer später als Auswahl zu Verfügung stehen sollen.
Also welche Nadelarten gibt es = Liste mit möglichen Nadelarten
wie viele Nadeln hat das Modul = Liste mit möglicher Anzahl der Nadeln
usw.
Später wird der Nutzer dann gefragt welche Art, welche Nadelanzahl, welche Spitze etc
So weit so gut:
und hier ein Beispiel für den Aufbau der KLasse:
Code: Alles auswählen
# die Klasse für die genutzten Nadeln
class Nadeln:
# die Methode __init__()
def __init__(self):
# die Attribute für die Nadelspezifikationen
self.nadel_art = ["RL", "RS", "SEM", "M", "FLAT"]
self.nadel_anzahl = [1, 3, 5, 7, 9, 11, 15, 17, 19, 22]
self.nadel_spitze = ["MT", "LT", "XLT"]
self.nadel_dicke = [0.25, 0.30, 0.35, 0.40]
Ich möchte nun einen Zähler einbauen der die Nadeln im bestand entsprechend runtersetzt.
und da hänge ich ein bisschen im Aufbau.
würde es zum Beispiel nur das Kriterium nadel_art geben würde ich auf die einfachste Art eine Liste erstellen, die so viele "einzelne Stückzahlen" hat, wie es Arten gibt.
Also:
Code: Alles auswählen
self.anzahl_vorhanden = [20, 20, 20, 20, 20]
# oder
self.anzahl_vorhanden = [anzahl1, anzal2, ...]
Jetzt ist meine Frage aber, da es ja für jede Nadelart bei jeder Nadeldicke und jeder Spitzenform die anzahlen der Nadeln gibt. Wie setze ich das um?
Ich kann doch nicht für jede mögliche Nadelkonstellation eine Gebindegröße angeben. Das muss doch einfacher/angenehmer gehen. Z.B. ein Attribut self.gebinde_groesse = 20 erstellen und dieses dann in einer variablen für die entsprechende Nadelkonfiguration abzulegen.
Ich steh da gerade voll auf dem Schlauch und hoffe ihr versteht meine Idee.
Würd mich freuen wenn ihr helfen könnt.
Mir geht es auch gerade nicht um die "Runterrechnung" bei be Benutzung (soll aber später natürlich gemacht werden), sondern wirklich nur darum wie ich, mit einfachsten Mitteln, jeder möglichen Nadelkonfiguration den Wert der Packungsgröße (am Anfang 20) übergebe ohne mich kaputt zuschreiben.
Da ich, wie gesagt gerade Klassen als Lernthema habe, wäre es mega wenn ihr mir keine Bibliotheken um die Ohren haut. Ich möchte es halt kapieren und da sind Bibliotheken nur bedingt hilfreich.
Dankeeehh!