Я пытаюсь использовать pickle для сохранения и загрузки объекта, но он не загружается должным образом. Выдает ошибку:
Traceback (most recent call last): line 161, in <module> main()
line 28, in main print(tama.__dict__)
AttributeError: 'list' object has no attribute '__dict__'
Это часть моего кода:
import pickle
class Tamagotchi:
def __init__(self, size, color, previous_actions):
self.size = size
self.color = color
self.previous_actions = previous_actions
def change_size(self, int):
self.size += int
def main():
with open('save_file.txt', 'rb') as file:
tama = pickle.load(file)
print(tama.__dict__)
def quit(root, tama):
if messagebox.askokcancel("Avsluta", "Vill du avsluta?"):
with open('save_file.txt', 'wb') as file:
pickle.dump([tama], file, protocol=2)
root.destroy()
Я добавил print(tama.__dict__)
прямо перед вызовом pickle.dump (), и он напечатал:
{'size': 60, 'color': 'yellow', 'previous_actions': ['Tenta', 'Festa']}.
И файл save_file изменяется, когда я использую pickle.dump ()
Так что я думаю, что он сохраняется правильно, с правильными атрибутами. И я думаю, что я могу загрузить его, но он загружается в виде списка или что-то?