[Python-Dev] Informal educator feedback on PEP 572 (was Re: 2018 Python Language Summit coverage, last part) (original) (raw)
Tim Peters tim.peters at gmail.com
Wed Jun 27 12:51:35 EDT 2018
- Previous message (by thread): [Python-Dev] Informal educator feedback on PEP 572 (was Re: 2018 Python Language Summit coverage, last part)
- Next message (by thread): [Python-Dev] Informal educator feedback on PEP 572 (was Re: 2018 Python Language Summit coverage, last part)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
[Nick Coghlan]
However, PEP 572 in its current form takes the position "parent local scoping is sufficiently useful to make it a required pre-requisite for adding assignment expressions, but not useful enough to expose as a new scope declaration primitive",
Of course the PEP doesn't take that position at all: it doesn't even contain the term "parent local scoping". That's your term, which nobody else uses unless they're replying to you ;-)
What the PEP does say:
""" an assignment expression occurring in a list, set or dict comprehension or in a generator expression (below collectively referred to as "comprehensions") binds the target in the containing scope, honoring a nonlocal or global declaration for the target in that scope, if one exists. For the purpose of this rule the containing scope of a nested comprehension is the scope that contains the outermost comprehension. A lambda counts as a containing scope. """
It's a small collection of plainly stated rules for specifying the intended semantics. If you want to claim that this is "useful enough to expose as a new scope declaration primitive", it's really on you to present use cases to justify that claim. I'd present some for you, but I don't have any (I don't care that "by hand" conversion of nested comprehensions to workalike Python nested functions may require a bit of thought to establish the intended scope of assignment expression target names - all of which is easily doable without adding any new statements).
I don't expect that other good use cases exist. The gimmick's purpose is to make code that visually appears to belong to a block act as if embedded assignments do occur in that block. If there's an explicitly nested function, that fundamental motivation no longer applies. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20180627/3b978017/attachment.html>
- Previous message (by thread): [Python-Dev] Informal educator feedback on PEP 572 (was Re: 2018 Python Language Summit coverage, last part)
- Next message (by thread): [Python-Dev] Informal educator feedback on PEP 572 (was Re: 2018 Python Language Summit coverage, last part)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]