Большое спасибо всем!

аюсь сериализовать большое количество пользовательских классов на диск с помощью Python pickle. Тем не менее, классы не сериализуются должным образом.

Посмотрев надокументы мое понимание того, что я пытаюсь сделать, должно работать, но, возможно, это не просто потому, что я чего-то не понимаю.

Мои классы определены на верхнем уровне модуля. И никакое исключение PicklingError не вызывается при попытке засолки.

Вот мой пример кода. Раскомментируйте Save () для сериализации; раскомментируйте Load () для загрузки. При загрузке массив Синонимов Term не заполняется, но основной объект Term десериализуется. Вы можете убедиться в этом, проверив объект «loadedTerms », возвращаемый функцией Load ().

Что я делаю неправильно? Благодарю.

import pickle

class Entry:
    Text = ""

    def __init__(self, text):
       self.Text = text

class Term:

    Main = None
    Synonyms = []


def Save():
    term = Term()
    term.Main = Entry("Dog")
    term.Synonyms.append(Entry("Canine"))
    term.Synonyms.append(Entry("Pursue"))
    term.Synonyms.append(Entry("Follow"))
    term.Synonyms.append(Entry("Plague"))

    terms = []
    terms.append(term)

    with open('output.pickle', 'wb') as p:
        pickle.dump(terms, p)

def Load():
    loadedTerms = []

    with open('output.pickle', 'rb') as p:
        loadedTerms = pickle.load(p)

    return loadedTerms


#Save()
#terms = Load()

Ответы на вопрос(1)

Ваш ответ на вопрос