regarding memoize function

Gabriel Genellina gagsl-py2 at yahoo.com.ar
Thu Apr 3 21:04:06 EDT 2008


En Thu, 03 Apr 2008 21:21:11 -0300, Dan Bishop <danb_83 at yahoo.com>  
escribió:

> On Apr 3, 6:33 pm, ankitks.mi... at gmail.com wrote:
>> I saw example of memoize function...here is snippet
>>
>> def memoize(fn, slot):
>>        def memoized_fn(obj, *args):
>>             if hasattr(obj, slot):
>>                 return getattr(obj, slot)
>>             else:
>>                 val = fn(obj, *args)
>>                 setattr(obj, slot, val)
>>                 return val
>>        return memoized_fn
>>
>> and I am really clueless, about what it does. I know in general we try
>> to keep computed values for future usage. But I am having hard-time
>> visualizing it.
>> What is obj here? and what does *args means?
>
> *args is Python's syntax for variadic functions.

In case the strange name gives you nothing, see section 4.7 in the  
Tutorial [1]
For a much simpler implementation, see this FAQ entry [2]

[1] http://docs.python.org/tut/node6.html#SECTION006700000000000000000
[2]  
http://www.python.org/doc/faq/general/#why-are-default-values-shared-between-objects

-- 
Gabriel Genellina




More information about the Python-list mailing list