Кеш объекта Python

Я попытался немного кода, но это, кажется, вызывает проблемы:

class Page:
    cache = []


    """ Return cached object """
    def __getCache(self, title):
        for o in Page.cache:
            if o.__searchTerm == title or o.title == title:
                return o
        return None


    """ Initilize the class and start processing """
    def __init__(self, title, api=None):
        o = self.__getCache(title)
        if o:
            self = o
            return
        Page.cache.append(self)

        # Other init code
        self.__searchTerm = title
        self.title = self.someFunction(title)

Тогда я пытаюсь:

a = Page('test')
b = Page('test')

print a.title # works
print b.title # AttributeError: Page instance has no attribute 'title'

Что не так с этим битом кода? Почему это не работает? Есть ли способ заставить его работать? Если нет, то как мне легко и прозрачно перейти к объектам кэширования конечного пользователя?

Ответы на вопрос(3)

Ваш ответ на вопрос