>Python 2.5.1 (r251:54863, Oct 30 2007, 13:45:26)
> [GCC 4.1.2 20070925 (Red Hat 4.1.2-33)] on linux2
> Type "help", "copyright", "credits" or "license" for more information.
> >>> x = { }
> >>> x[lambda arg: arg] = 5
> >>> x[lambda arg: arg]
> Traceback (most recent call last):
> File "<stdin>", line 1, in <module>
> KeyError: <function <lambda> at 0x2aaaaabaab18>
I think the point is that function objects compare by object identity,
so the two lambdas you use above are not equal even though they have the
same code. Consider:
>>> a = lambda arg: arg
>>> x = {}
>>> x[a] = 5
>>> x[a]
5
>>> x[lambda arg:arg]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: <function <lambda> at 0xa06602c>
>>>
Cheers,
Ryan
--
Ryan Kelly
http://www.rfk.id.au | This message is digitally signed. Please visit
[email protected] | http://www.rfk.id.au/ramblings/gpg/ for details
signature.asc
Description: This is a digitally signed message part
-- http://mail.python.org/mailman/listinfo/python-list
