我阅读了有关 OOP 和这个问题的文章,但不明白如何解决它
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'