Hi Anders Thank you for your interesting message. I'm sure it's based on a real need. You wrote:
> I have a working implementation for a new syntax which would make using > keyword arguments a lot nicer. Wouldn't it be awesome if instead of: > foo(a=a, b=b, c=c, d=3, e=e) > we could just write: > foo(*, a, b, c, d=3, e) > and it would mean the exact same thing? I assume you're talking about defining functions. Here's something that already works in Python. >>> def fn(*, a, b, c, d, e): return locals() >>> fn.__kwdefaults__ = dict(a=1, b=2, c=3, d=4, e=5) >>> fn() {'d': 4, 'b': 2, 'e': 5, 'c': 3, 'a': 1} And to pick up something from the namespace >>> eval('aaa', fn.__globals__) 'telltale' Aside: This is short, simple and unsafe. Here's a safer way >>> __name__ '__main__' >>> import sys >>> getattr(sys.modules[__name__], 'aaa') 'telltale' >From this, it should be easy to construct exactly the dict() that you want for the kwdefaults. -- Jonathan _______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/