# -*- coding: utf-8 -*- #-------------------------------- #$Date$ #$Author$ #$Revision$ #-------------------------------- #Copyright (C) 2007, 2008 Alexander Koshelev (daevaorn@gmail.com) def attribute_cache( func ): cache_name = "_%s" % func.__name__.lower() def _decorator( self, *args, **kwargs ): if not hasattr( self, cache_name ): setattr( self, cache_name, func( self, *args, **kwargs ) ) return getattr( self, cache_name )