[Python-Dev] assignment expressions: an alternative proposal (original) (raw)
Nick Coghlan ncoghlan at gmail.com
Tue Apr 24 11:55:36 EDT 2018
- Previous message (by thread): [Python-Dev] assignment expressions: an alternative proposal
- Next message (by thread): [Python-Dev] assignment expressions: an alternative proposal
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 25 April 2018 at 01:35, Yury Selivanov <yselivanov.ml at gmail.com> wrote:
On Tue, Apr 24, 2018 at 11:31 AM, Nick Coghlan <ncoghlan at gmail.com> wrote:
I do think the "no name rebinding except in a while loop header" restriction would be annoying for the if/elif use case and the while use case:
while (item = getitem()) is not firstdelimiter: # First processing loop while (item = getitem()) is not seconddelimiter: # Second processing loop # etc... if (target = getfirstcandidate()) is not None: ... elif (target = getsecondcandidate()) is not None: ... elif (target = getthirdcandidate()) is not None: ... Yes, it would force users to come up with better names iff they want to use this new sugar: if (firsttarget = getfirstcandidate()) ... elif (secondtarget = getsecondcandidate()) ...
Sorry, I didn't make the intended nature of that example clear:
if (target = get_first_candidate()) is not None:
... # Any setup code specific to this kind of target
elif (target = get_second_candidate()) is not None:
... # Any setup code specific to this kind of target
elif (target = get_third_candidate()) is not None:
... # Any setup code specific to this kind of target
else:
raise RuntimeError("No valid candidate found")
# Common code using target goes here
Using a separate name in each branch wouldn't solve the problem of binding the same name for the common code to use later - you'd have to put a "target = candidate_n" bit of boilerplate in each branch.
Cheers, Nick.
-- Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia
- Previous message (by thread): [Python-Dev] assignment expressions: an alternative proposal
- Next message (by thread): [Python-Dev] assignment expressions: an alternative proposal
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]