Guido van Rossum wrote:
> On 4/22/06, Neil Schemenauer <[EMAIL PROTECTED]> wrote:
>> On Sun, Apr 23, 2006 at 01:28:06AM +0200, guido.van.rossum wrote:
>>> +bytes_nohash(PyObject *self)
>>> +{
>>> +    PyErr_SetString(PyExc_TypeError, "bytes objects are unhashable");
>>> +    return -1;
>>> +}
>> I think we might need to have a frozenbytes object too.
> 
> I believe YAGNI. Also, I'm not keen on all these frozen variants.
> Hands up who's ever used a frozen set or needed a frozen dict?

When implementing a decorator that caches return values based on the 
function arguments it's useful (but of course a workaround can use 
tuple(sorted(kwargs.iteritems())):

def cache(func):
     cache = {}
     def wrapper(*args, **kwargs):
         cacheargs = (args, tuple(sorted(kwargs.iteritems())))
         try:
            return cache[cacheargs]
         except KeyError:
            result = func(*args, **kwargs)
            cache[cacheargs] = result
            return result
     return wrapper

This can e.g. be used in CherryPy, where arguments are guaranteed to be 
strings.

Servus,
    Walter


_______________________________________________
Python-3000-checkins mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-3000-checkins

Reply via email to