Приведение объекта pickle к пользовательскому типу данных - PullRequest
0 голосов
/ 29 января 2019

Я создал класс, назовем его Person:

class Person(object):
    def __init__(self, name: str, lastname: str):
        self.name, self.lastname = name, lastname

    def Copy(self):
        return Person(self.name, self.lastname)

После создания экземпляра класса я решил сохранить его в файле маринада.Теперь, после сохранения, я хочу создать новый экземпляр класса с данными из файла pickle, например:

with open("data.pkl", "rb") as data_file:
    David = pickle.load(data_file).Copy()

Я ожидаю, что это сработает, так как метод copy был явно создан для создания новогоэкземпляр вместо того, чтобы просто указать новому объекту указывать на ту же область памяти.Тем не менее, я получаю сообщение об ошибке: 'NoneType' object has no attribute 'Copy'

Я думал о приведении этого, но просто приведение так:

David = Person(pickle.load(data_file)).Copy()

Также не работает, потому что он хочет получить аргументыфункция инициализации, а не ее приведение ...

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

...