AttributeError: 'Dict' object has no attribute 'book'

Я читал статьи про ООП и эту проблему, но не понял как её решить

import pickle


# Надо сделать так чтобы список сохранялся, а не каждый раз был новым


# Класс содержащий список с именами и данными
class Dict():
    def __init__(self, book):
        self.book = {}


    def InputInfo(self):
        self.book = {} # создаем список
        print(self.book)
        name = input("Введи имя человека:") 
        # Просим пользователя ввести данные 
        info = input(("Напишите информацию о человеке:"))
            
        self.book[name] = info # добавляем данные в список
        print(self.book)


    def Del(self):
        delname = input("Введите имя того кого хотите удалить:")

        pop_item = self.book.pop(delname) # удаляет данные об имени что ввел пользователь   

        print(self.book)


    def Save(self):
        # Имя файла в котором мы сохраним объект 
        adfile = 'book.data'
        
        # Запись в файл
        f = open(adfile, 'wb')
        pickle.dump(self.book, f) # помещаем объект в файл
        f.close()

        del self.book # удаляем словарь 

        # Считываем из хранилища
        f = open(adfile, 'rb')
        savedict = pickle.load(f) # загружаем объект из файла
        print(savedict)


# Реализация
print("Хочешь завести адресную книгу? \n1-ДА, 2-НЕТ")
answ = int(input())

if answ == 1:
    d = Dict({})
    d.InputInfo()
else:
    print("Как хочешь")

d = Dict({})
d.Save()


print("Добавьте еще одного человека")

d.Save()

Ошибка:

Traceback (most recent call last): File "C:\Python\AddressBookCopy2.py", line 65, in <module> d.Save() File "C:\Python\AddressBookCopy2.py", line 38, in Save pickle.dump(self.book, f) # помещаем объект в файл AttributeError: 'Dict' object has no attribute 'book'

Ответы (1 шт):

Автор решения: n1tr0xs

Ошибку выдает потому что после вызова метода Save у класса действительно нет атрибута book - вы его удаляете в указанной ранее функции del self.book # удаляем словарь . А вы пытаетесь еще раз "сохранить" ваш класс.

→ Ссылка