Я создаю небольшое приложение-оболочку, которое поможет мне сохранить некоторую информацию и просмотреть некоторые версии Python.
У меня есть пара кодов Python для группы классов, которые ссылаются друг на друга, таких как «Пользователь», «Человек», «Контакт», «Событие», а затем основной App.py, который я использую для его тестирования.
Я использую рассол для сохранения данных, , используя этот вопрос в качестве вдохновения.
Моя проблема в том, что, хотя класс сохранен, это "внутренняя информация - нет".
import Event
import Contact
import pickle
def saveObj(filename, obj):
with open(filename, 'wb') as output:
pickle.dump(obj,output, pickle.HIGHEST_PROTOCOL)
print("SAVED")
def loadObj(filename, obj):
with open(filename, 'rb') as input:
obj = pickle.load(input)
print("LOADED")
p1 = Person.Person("abcd",12,"ui")
p2 = Person.Person("Hah",123,"aaa")
c1 = Contact.Contact([p1,p2], "Wakanda", "12-23-54")
e1 = Event.Event([p1],"12-32-31")
e1.setTitle();
e1.setDescription();
c2 = Contact.Contact([p2],"Forever", "12-23-53")
print("1 for new user, 2 for existing user")
ipt = input("Write something but not exit!\n>>")
filename = ""
while (ipt!= "exit!"):
if (ipt=="1"):
print("1")
idNumber = input("Insert id\n>> ")
name = input("Inser name\n>> ")
filename = str(idNumber)+".data"
session = LoggedIn.User(idNumber,name)
session.addStuff([e1],[c1,c2],[p1,p2])
print(session.people)
saveObj(filename,session)
del session
elif(ipt=="2"):
print("2")
session = LoggedIn.User(None,None)
loadObj(filename,session)
print(session.people)
ipt = input("Write something but not exit!\n>>")
Возврат, который я хотел бы получить, был бы равен при использовании опции 1 и опции 2 . Но вместо этого это так:
1 for new user, 2 for existing user
Write something but not exit!
>>1
1
Insert id
>> 12345678
Inser name
>> AAA
[<Person.Person object at 0x7fa8079c6908>, <Person.Person object at 0x7fa8079c6940>]
SAVED
Write something but not exit!
>>2
2
LOADED
[]
Write something but not exit!
>>
Как я могу это исправить?