On Wed, Oct 03, 2018 at 06:57:19AM +0200, Anders Hovmöller wrote: > debug(next=value+1) > > Still shorter than the proposed syntax
Are we trying to emulate Perl now? *wink* > and much more readable. So you say. To me that looks like a regular function call, which calls an ordinary function "debug" and takes a simple keyword argument next with value "value+1". Things which contain compiler magic should look special, not like ordinary function calls. > > AIUI, keyword arguments are all supposed to be legal names/atoms, so > > you aren't supposed to do something like this: > > > > debug(**{"value+1":value+1}) > > Really? That seems pretty weird to me. I’ve used that type of thing in > production code from time to time. The fact that this works is, I think, an accident of implementation: py> def spam(**kw): ... print(kw) ... py> spam(**{"value+1": 42}) {'value+1': 42} rather than a guaranteed language feature. I can't find any relevent documentation on it, but I'd be very wary about relying on it. (To be honest, I expected it to fail until I tried it.) You certainly can't do this: py> spam(value+1=42) File "<stdin>", line 1 SyntaxError: keyword can't be an expression -- Steve _______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/