Caché de objetos de Python
Intenté un poco de código pero parece causar problemas:
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)
Entonces trato de
a = Page('test')
b = Page('test')
print a.title # works
print b.title # AttributeError: Page instance has no attribute 'title'
¿Qué hay de malo con este bit de código? ¿Por qué no funciona? ¿Hay alguna manera de hacerlo funcionar? De no ser así, ¿cómo hago para el usuario final almacenar en caché los objetos de forma fácil y transparente?