ошибка маринования функции с помощью copyreg на python3.7

Я пытаюсь запустить пример кода, как мариновать объект на https://docs.python.org/3.7/library/copyreg.html?highlight=copyreg#module-copyreg

Я использую его на базе данных с

 python version : 3.7.6 (GCC 7.3.0 ) 

Код:

 import copyreg, copy, pickle
 class C(object):
     def __init__(self, a):
         self.a = a

 def pickle_c(c):
     print("pickling a C instance...")
     return C, (c.a,)

 copyreg.pickle(C, pickle_c)
 c = C(1)
 d = copy.copy(c)
 p = pickle.dumps(c) # error ! 

У меня ошибка:

pickling a C instance...
pickling a C instance...
PicklingError: Can't pickle <class '__main__.C'>: attribute lookup C on __main__ failed
---------------------------------------------------------------------------
PicklingError                             Traceback (most recent call last)
<command-2968558> in <module>
 11 c = C(1)
 12 d = copy.copy(c)
  ---> 13 p = pickle.dumps(c)

 PicklingError: Can't pickle <class '__main__.C'>: attribute lookup C on __main__ failed

Я слежу за решениями в Can't pickle Function

а, похоже, что функцию копираг еще не замариновать?

благодаря

0 ответов

Другие вопросы по тегам