>> debug(=value, =another)
> 
> What if it's not a simple name, though? The OP gave this (somewhat
> simplistic, but indicative) example:
> 
> print(f'next: {value+1!d}')

debug(next=value+1)

Still shorter than the proposed syntax and much more readable. If you do this a 
lot you’d probably call the function just “d” too. 

> 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.

> even though it does work in current versions of CPython. So even if
> your "=value" syntax did permit it, I wouldn't want to guarantee that
> in the language.

Well I haven’t suggested my syntax would support that. But yea, I realize I was 
pretty vague in my last email!

> (Side point: Please watch your mailer. The debug() function above has
> smart quotes in it, which means it can't be copied and pasted into the
> interpreter. Not a big problem with trivially-simple functions, but if
> it's something larger, it's annoying to have to track down
> "SyntaxError: invalid character in identifier" to figure out why it's
> not doing what you think it is.)

Huh. I’ll look into it. Thanks for the heads up. 

/ Anders
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to