Как я могу десериализовать (распаковать) несколько объектов на основе al oop? - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть класс с именем Item. Я использую две функции, Create_item и show_items. То, что я хочу сделать: show_items должен дать мне несколько элементов "столько раз, сколько Create_item было использовано для создания элементов".

Я пытался использовать for-l oop и подсчитывать, сколько раз Create_items был использован, однако, похоже, не работает так, как я хочу.

listofitems = 0 # trying to keep track of how many items created by create_item()

def create_hospital(listofhospitals): # first
    print("Enter The following details to create a new item : ")

    item = item(getitemname(), getcapacity(), gettype()) # creating object of class item
    listofitems += 1 #trying to keep track of how many items created

    pickle_out = open("items.pickle", "wb") # storing objects in items.pickle
    pickle.dump(item, pickle_out)
    pickle.dump(listofitems, pickle_out)
    pickle_out.close()

def show_items():
    pickle_in = open("items.pickle", "rb")
    listofitems = pickle.load(pickle_in)
    A = []
    for i in range(0, listofitems): # trying to load objects of items into list A[] as many items created
        A[i]=pickle.load(pickle_in)


    for i in range(listofitems): # trying to print the items created by Create_items() and unloaded above
        A[i].print_item_details()
    #hospital.print_item_details()
...