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?