I assume when you say "non-string keys" this includes numbers. But in Pypy, I can certainly use numbers: >>> {'1':1, 1:2}.keys() ['1', 1]
I can even use a lambda (obviously not a string, a number, nor what I would consider a primitive): >>> {'1':1, (lambda x: x):2}.keys() ['1', <function <lambda> at 0x00007fdb0b837da8>] These are in Pypy 1.8. --Brett On Thu 08 Mar 2012 14:39:40 NZDT, Victor Stinner wrote: > Hi, > > During the Language Summit 2011 (*), it was discussed that PyPy and > Jython don't support non-string key in type dict. An issue was open to > emit a warning on such dict, but the patch has not been commited yet. > > I'm trying to Lib/test/crashers/losing_mro_ref.py: I wrote a patch > fixing the specific issue (keep a strong reference to the MRO during > the lookup, see #14199), but I realized that the real problem is that > we allow custom objects in the type dict. > > So my question is: what is the use case of such dict? Why do we still > support it? Can't we simply raise an error if the dict contains > non-string keys? > > (*) http://blog.python.org/2011/03/2011-language-summit-report.html > > Victor > _______________________________________________ > Python-Dev mailing list > Python-Dev@python.org > http://mail.python.org/mailman/listinfo/python-dev > Unsubscribe: > http://mail.python.org/mailman/options/python-dev/brett%40brett.geek.nz _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com