Приведение объекта Pickle к пользовательскому типу данныхPython

Программы на Python
Anonymous
 Приведение объекта Pickle к пользовательскому типу данных

Сообщение Anonymous »

Я создал класс, назовем его 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.
Теперь, после сохранения, я хочу создать новый экземпляр класса с данными из файла Pickle, вот так:

Код: Выделить всё

with open("data.pkl", "rb") as data_file:
David = pickle.load(data_file).Copy()
Я ожидаю, что это сработает, поскольку метод копирования был явно создан для создания нового экземпляра, а не просто для того, чтобы новый объект указывал на ту же ячейку памяти.
Однако я получаю сообщение об ошибке, сообщающее, что
у объекта 'NoneType' нет атрибута 'Copy'

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

Код: Выделить всё

David = Person(pickle.load(data_file)).Copy()
Также не работает, потому что он хочет получить аргументы функции init, а не привести ее...

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

Подробнее здесь: https://stackoverflow.com/questions/544 ... -data-type

Вернуться в «Python»