Dicionário de variáveis ​​de classe não salvando com pickle.dump no python 2.7

Eu estou usando pickle para salvar um gráfico de objeto, despejando a raiz. Quando eu carrego a raiz, ela tem todas as variáveis ​​de instância e os nós de objetos conectados. No entanto, estou salvando todos os nós em uma variável de classe do tipo dicionário. A variável de classe está cheia antes de ser salva, mas depois que eu desarripar os dados, ela fica vazia.

Aqui está a classe que estou usando:

class Page():

    __crawled = {}

    def __init__(self, title = '', link = '', relatedURLs = []):
        self.__title = title
        self.__link = link
        self.__relatedURLs = relatedURLs
        self.__related = [] 

    @property
    def relatedURLs(self):
        return self.__relatedURLs

    @property
    def title(self):
        return self.__title

    @property
    def related(self):
        return self.__related

    @property
    def crawled(self):
        return self.__crawled

    def crawl(self,url):
        if url not in self.__crawled:
            webpage = urlopen(url).read()
            patFinderTitle = re.compile('<title>(.*)</title>')
            patFinderLink = re.compile('<link rel="canonical" href="([^"]*)" />')
            patFinderRelated = re.compile('<li><a href="([^"]*)"')

            findPatTitle = re.findall(patFinderTitle, webpage)
            findPatLink = re.findall(patFinderLink, webpage)
            findPatRelated = re.findall(patFinderRelated, webpage)
            newPage = Page(findPatTitle,findPatLink,findPatRelated)
            self.__related.append(newPage)
            self.__crawled[url] = newPage
        else:
            self.__related.append(self.__crawled[url])

    def crawlRelated(self):
        for link in self.__relatedURLs:
            self.crawl(link)

Eu salvei assim:

with open('medTwiceGraph.dat','w') as outf:
    pickle.dump(root,outf)

e eu carrego assim:

def loadGraph(filename): #returns root
    with open(filename,'r') as inf:
        return pickle.load(inf)

root = loadGraph('medTwiceGraph.dat')

Todos os dados são carregados, exceto pela variável de classe __crawled.

O que estou fazendo de errado?

questionAnswers(4)

yourAnswerToTheQuestion