ich bin in meinen Anfängen und komme an einer Stelle alleine nicht weiter. Durch diverse Suchanfragen konnte ich mein Problem leider nicht finden.
Es ist sicher eine triviale Lösung
Ich möchte einen Aussaht Kalender entwickeln. Meine spezifischen Gemuese Sorten, die ich dann pflanze und ernte sind Instanzen einer Gemüse Klasse.
Ich bin noch nicht so weit, um mit Python eine Datenbank anzusprechen, deswegen möchte ich meine Daten erstmal in einer Python Liste speichern. Das würde mir für´s erste reichen.
Jetzt zu meinem Problem:
In einer Datei classlist.py habe ich meine Gemuese Klasse definiert und speichere auch dort die Gemüse Eigenschaften innerhalb einer Liste.
Code: Alles auswählen
Knoblauch = ["Knoblauch", "lockerer Boden, humusreich", "Mischkultur"]
Code: Alles auswählen
knoblauch = Gemuese("Knoblauch")
Nun soll eine Klassen Funktion der Gemüse Klasse die Eigenschaften des Gemüses ausgeben.
Ich hole mir den string "Knoblauch" aus dem Aufruf aus der main.py und möchte diesen dann in der Funktion
Code: Alles auswählen
def definition_ausgeben(self):
print(self.gemuese_name)
Hier ist mein Problem: durch diesen Funktionsaufruf wird mir nur der String "Knoblauch" ausgegeben, aber nicht die gespeicherten Inhalte der "Knoblauch-Liste.
Ich möchte in der Funktion nicht explizit die Liste Knoblauch direkt angeben müssen (was wunderbar klappen würde, schon getestet), weil ich sonst den Code immer wieder spezifisch erweitern müsste, wenn ein Gemüse dazukommt. Ich schätze das wäre auch ein schlechter Programmierstil.
hier meine beiden vollständigen py Dateien
main. py
Code: Alles auswählen
from classlist import Gemuese
knoblauch = Gemuese("Knoblauch")
knoblauch.definition_ausgeben()
Code: Alles auswählen
Knoblauch = ["Knoblauch", "lockerer Boden, humusreich", "Mischkultur"]
class Gemuese:
def __init__(self, gemuese_name):
self.gemuese_name = gemuese_name
print("Der " + gemuese_name + " wurde in die Satliste aufgenommen")
def definition_ausgeben(self):
print(self.gemuese_name)
def aussaht(self):
print("Der " + self.gemuese_name + " wird ausgesäht")