[Python-Dev] Very Strange Argument Handling Behavior (original) (raw)

Dino Viehland dinov at microsoft.com
Sat Apr 17 20:03:59 CEST 2010


Maciej wrote:

On Sat, Apr 17, 2010 at 11:38 AM, Dino Viehland <dinov at microsoft.com> wrote: > Benjamin wrote: >> 2010/4/17 Guido van Rossum <guido at python.org>: >> > On Sat, Apr 17, 2010 at 9:22 AM, Nick Coghlan <ncoghlan at gmail.com> >> wrote: >> >> Guido van Rossum wrote: >> >>> Because Python promises that the object the callee sees as 'kwargs' >> is >> >>> "just a dict". >> >> >> >> Huh, I thought kwargs was allowed to be implemented as a >> >> string-keys-only dict (similar to class and module namespaces) while >> >> still be a valid Python implementation. I guess I was wrong. >> > >> > Actually I don't know about that. Is there language anywhere in the >> > language reference that says this? What do IronPython, Jython, PyPy >> > actually do? >> >> Similar to CPython, PyPy has dict versions optimized for strings, >> which fall back to the general version when given non-string keys. > > IronPython as well.  The only place we use a string only dict is for > new-style classes whose dict's are wrapped in a dictproxy.

And yet that breaks some code :-)

Sure, if you do:

class C(object): locals()[object()] = 42

dir(C)

You lose. Once I'm aware of some piece of code in the wild doing this then I'll be happy to change IronPython to be more compatible. :)



More information about the Python-Dev mailing list