Steven D'Aprano <[EMAIL PROTECTED]> writes:
> It isn't a bug in Python. At worst, it is a "gotcha", but it is a
> deliberate design decision, and quite useful. For example, this is good
> for caching complicated calculations:
> 
> def function(x, _cache={}):
>     # _cache is initialised to an empty dictionary at compile time
>     if _cache.has_key(x):
>         return _cache[x]

The above can be done explicitly:

     def function(x):
         if function._cache.has_key(x):
             return function._cache[x]
         ...
     # function gets an initially-empty cache
     function._cache = {}

So the existing behavior, while not a bug (since it's documented), may
well be a wart.
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to