> You said function. I made a function. You said "head of a for loop > clause". I put it there. Problem was underspecified.
I also wrote a lot of letters, if you combine them very liberally, without any regard to the order in which they were written or the context in which they were used, you may come up with very surprising findings. > But if you're trying to tell me that a def statement should be a valid > assignment target, Why not just read what I wrote and work from there? No, I didn't write anything even remotely similar to this... I don't want function definition to be an assignment target. I was giving an example of how Python grammar works, how the rules govern what can or cannot be used in a particular place... In other words, if you aren't sure you understand the question, why are you trying to reply to it? Is your goal to learn the meaning of the question by giving arbitrary replies and hoping that the author of the question restates it so that you understand it? If so, I believe, the better strategy would be to simply ask to restate the question. Will save you the round-trip. > You provided a way to create an anonymous function and that was not enough. > I wonder if you could throw in the new := walrus operator to similarly make > a named lambda function in a similar way. The person you are replying to didn't understand the question and has written something irrelevant. It's not about being "enough". I honestly don't know why they are spending so much energy replying to my messages :| > Python grew and there was regular pressure to add keywords which might break > existing programs. So, yes, sometimes, a keyword was re-used in a different > context. Why are keywords relevant to this? > How often do you really think anyone out there NEEDS to define a function in > the context mentioned? This isn't about programmers writing programs that aren't about the language. It's about programmers who write language-related tools, like linters, formatters etc. I.e. the programmers who need to consider any possible grammar product. And the reason I mentioned function definition is, this, again: function definition is a statement. Python grammar rules prevent function definition from appearing in left-hand side of the head of the for loop. However, a variable declaration, which is also a statement, is allowed there. Programmers like grammar rules to be consistent, and it's surprising if a particular larger context allows both statements and expressions. I also explained why and how language authors would make a decision to break this consistency: it saves some keystrokes for the programmers. I.e. allows for shorter programs, while doesn't add any new abilities to the language. -- https://mail.python.org/mailman/listinfo/python-list