python: pickle не может сохранить функцию из класса - PullRequest
0 голосов
/ 14 января 2020

Я хочу выбрать весь объект, экземпляр класса:

class A:
   def __init__(self):
      def genid():
         return next(self.__counter)
      self.__counter = count()
      self.__ids = defaultdict(genid)
      self.processed_data = []

   def method1(self):
      self.__ids['abc']
      self.__ids['def']

...

obj = A()
with open("class_a.pkl", 'wb') as f:
   pickle.dump(obj, f)

AttributeError: Невозможно выбрать локальный объект ' A. init .. genid '

Однако, когда я делаю genid() отдельным методом класса, pickle счастлив. Что я делаю не так?

...