#NEWLINE# def __call__( self , * args ) : #NEWLINE# #INDENT# try : #NEWLINE# #INDENT# return self . cache [ args ] #NEWLINE# #UNINDENT# except KeyError : #NEWLINE# #INDENT# value = self . func ( * self ) #NEWLINE# self . cache [ args ] = value #NEWLINE# return value #NEWLINE# #UNINDENT# except TypeError : #NEWLINE# #INDENT# return self . func ( * args )