Правильно "пикелить" дочерние / подклассы Python - PullRequest
0 голосов
/ 07 мая 2019

У меня есть субкласс scipy.spatial.ckdtree.cKDTree, чтобы расширить его функциональность.В настоящее время я не могу правильно выбрать и сериализовать (сериализовать) экземпляр этого подкласса, который мне нужен для использования класса с multiprocessing.

class ccKDTree(cKDTree):

    __doc__ = cKDTree.__doc__

    def __init__(self, *args, **kwargs):
        super(ccKDTree, self).__init__(*args, **kwargs)

    def query_hypershell_point(self, *args):
        """
        Do some stuff with the cKDTree
        """
        return some_data

Pickling иОднако при откреплении экземпляра этого объекта тип данных изменяется на родительский класс scipy.spatial.ckdtree.cKDTree.Неудивительно, что при вызове метода query_hypershell_point выдается AttributeError.

Мне кажется, что мне нужно работать с __get/setstate__, но я понятия не имею, как.

...