Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #39660 > unrolled thread

Re: Question about defaultdict

Started byFrank Millman <frank@chagford.com>
First post2013-02-23 13:54 +0200
Last post2013-02-23 13:54 +0200
Articles 1 — 1 participant

Back to article view | Back to comp.lang.python

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: Question about defaultdict Frank Millman <frank@chagford.com> - 2013-02-23 13:54 +0200

#39660 — Re: Question about defaultdict

FromFrank Millman <frank@chagford.com>
Date2013-02-23 13:54 +0200
SubjectRe: Question about defaultdict
Message-ID<mailman.2339.1361620458.2939.python-list@python.org>
On 23/02/2013 13:02, Peter Otten wrote:
> Frank Millman wrote:
>
>> On 23/02/2013 12:13, Frank Millman wrote:
>>> Hi all
>>>
>>> I use a dictionary as a cache, and I thought that I could replace it
>>> with collections.defaultdict, but it does not work the way I expected
>>> (python 3.3.0).
>>   >
>> [...]
>>>
>>> from collections import defaultdict
>>> my_cache = defaultdict(fetch_object)
>>> my_obj = my_cache['a']
>>>
>>> It does not work, because fetch_object() is called without any arguments.
>>
>> Thanks, Chris and Peter. Some nice ideas to choose from :-)
>>
>> Frank
>
> Oh, I overlooked that you are using Python 3. For that there's also
> functools.lru_cache. Example:
>
>>>> from functools import lru_cache
>>>> @lru_cache(maxsize=None)
> ... def fetch_object(id):
> ...     print("fetching #{}".format(id))
> ...     return id*id # bogus example
> ...
>>>> fetch_object(42)
> fetching #42
> 1764
>>>> fetch_object(42)
> 1764
>>>> fetch_object(10)
> fetching #10
> 100
>
>

Interesting.

Thanks, Peter

[toc] | [standalone]


Back to top | Article view | comp.lang.python


csiph-web