On Fri, 14 Apr 2006 13:30:49 -0300, Felipe Almeida Lessa wrote:

> Em Sex, 2006-04-14 às 09:18 -0700, wietse escreveu:
>>     def __init__(self, name, collection=[]):
> 
> Never, ever, use the default as a list.

Unless you want to use the default as a list.

Sometimes you want the default to mutate each time it is used, for example
that is a good technique for caching a result:

def fact(n, _cache=[1, 1, 2]):
    "Iterative factorial with a cache."
    try:
        return _cache[n]
    except IndexError:
        start = len(_cache)
        product = _cache[-1]
        for i in range(start, n+1):
            product *= i
            _cache.append(product)
        return product


-- 
Steven.

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to