Ich versuche, verschiedene Klasseninstanzen zu entkoppeln, die in separaten .pkl-Dateien gespeichert sind, indem ich über eine Liste mit allen Klasseninstanzen iteriert (jede Klasseninstanz hängt sich bei der Instanziierung an die entsprechende Liste an) . DieseKlasseninstanzen durch Interagieren über eine Liste entfernen
arbeitet:
# LOAD IN INGREDIENT INSTANCES
for each in il:
with open('Ingredients/{}.pkl'.format(each), 'rb') as f:
globals()[each] = pickle.load(f)
Zum Beispiel eine Zutat ist Aubergine
:
print(Aubergine)
Ausgang:
Name: Aubergine
Price: £1.00
Portion Size: 1
Doch diese nicht arbeiten:
# LOAD IN RECIPE INSTANCES
for each in rl:
with open('Recipes/{}.pkl'.format(each.name), 'rb') as f:
globals()[each] = pickle.load(f)
kann ich nur annehmen, dass die Frage von each.name
Stielen für die Dateinamen der Rezepte verwendet werden, während each
für die Zutat Dateinamen verwendet wird. Dies ist jedoch beabsichtigt, da das name
Attribut der Rezepte für den Endbenutzer formatiert ist (d. H. Leerraum usw. enthält). Ich denke, dies könnte das Problem sein, aber ich bin mir nicht sicher.
Sowohl die Zutat und Rezept-Klassen verwenden:
def __repr__(self):
return self.name
Zum Beispiel:
Ich habe ein Rezept Klasseninstanz SausageAubergineRagu
, für die self.name
'Sausage & Aubergine Ragu'
ist, und dies ist in der Liste rl
. Ich habe versucht, testen diese individuell:
Eingang:
rl
Ausgang:
[Sausage & Aubergine Ragu]
Deshalb glaube ich, dass dieser Code:
# LOAD IN RECIPE INSTANCES
for each in rl:
with open('Recipes/{}.pkl'.format(each.name), 'rb') as f:
globals()[each] = pickle.load(f)
... in diese führen sollte :
with open('Recipes/Sausage & Aubergine Ragu.pkl', 'rb') as f:
globals()[SausageAubergineRagu] = pickle.load(f)
Der Versuch, auf die Rezeptklasseninstanzen zuzugreifen, führt jedoch zu einem NameError.
Eine letzte Anmerkung - bitte nicht fragen, warum ich die Dinge so tue. Stattdessen hilf mir, das Problem anzugehen und zu lösen, damit ich es zum Laufen bringe und verstehe, was vor sich geht. Anerkannt :)
Warum wird die Frage abgelehnt? –