Как распаковать объект, класс которого существует в другом пространстве имен (python)?
Если у меня есть скрипт, который определяет класс:
script = """
class myClass:
def __init__(self):
self.name = 'apple'
self.color = 'green'
"""
а затем выполнить этот скрипт в своем собственном пространстве имен dict:
NS = {}
exec script in NS
а затем создайте экземпляр класса и выберите его:
a = NS['myClass']()
import pickle
save = pickle.dumps(a)
Теперь, если я попытаюсь отомкнуть его:
load = pickle.loads(save)
Я получаю ошибку
AttributeError: 'module' object has no attribute 'myClass'
Я понимаю, что это нене работает, потому что Python нене знаю, где найти myClass, чтобы перестроить объект. Но myClass существует в NS Dict. Есть ли способ сообщить pickle, где найти класс для загружаемого объекта?