Python-Objekt-Cache

Ich habe ein bisschen Code ausprobiert, aber es scheint Probleme zu verursachen:

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)

Dann versuche ich:

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

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

Was stimmt mit diesem Code nicht? Warum funktioniert es nicht? Gibt es eine Möglichkeit, es zum Laufen zu bringen? Wenn nicht, wie gehe ich einfach und transparent vor, wenn der Endbenutzer Objekte zwischenspeichert?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage