Why is lambda allowed as a key in a dict?

Daniel Fetchinson fetchinson at googlemail.com
Mon Mar 9 23:07:33 EDT 2009


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>

Is this a case of "we are all adults here"? I should only blame myself
for making an unnamed function a dictionary key or should it be
forbidden? Or am I missing something completely?

Cheers,
Daniel

-- 
Psss, psss, put it down! - http://www.cafepress.com/putitdown



More information about the Python-list mailing list