Я изучаю, как использовать рассол. Я создал объект namedtuple, добавил его в список и попытался рассортировать этот список. Однако я получаю следующую ошибку:
pickle.PicklingError: Can't pickle <class '__main__.P'>: it not found as __main__.P
Я обнаружил, что если я запустил код, не обернув его внутри функции, он отлично работает. Есть ли дополнительный шаг, необходимый для рассортирования объекта при обертывании внутри функции?
Вот мой код:
from collections import namedtuple
import pickle
def pickle_test():
P = namedtuple("P", "one two three four")
my_list = []
abe = P("abraham", "lincoln", "vampire", "hunter")
my_list.append(abe)
f = open('abe.pickle', 'w')
pickle.dump(abe, f)
f.close()
pickle_test()