[Python-Dev] Whatever happened to 'nonlocal x = y'? (original) (raw)
Random832 random832 at fastmail.com
Fri Jan 5 13:48:32 EST 2018
- Previous message (by thread): [Python-Dev] Whatever happened to 'nonlocal x = y'?
- Next message (by thread): [Python-Dev] Whatever happened to 'nonlocal x = y'?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Fri, Jan 5, 2018, at 10:47, Guido van Rossum wrote:
I don't recall (though someone with more time might find the discussion in the archives or on the tracker). It was never implemented and I think it shouldn't be. So we might as well update the PEP. It wouldn't be particularly useful, since (by definition) the function that declares the nonlocal variable is not its owner, and hence it's unlikely to make sense to initialize it here. The same reasoning applies to global BTW.
I'm not so sure...
The only situation in which you're required to declare a nonlocal/global variable, after all, is if you intend to assign it - a name that you never assign is presumed to be non-local. The description in the PEP also applies to augmented assignments, and "global some_counter; some_counter += 1" is certainly a pattern I've needed in the past.
The PEP also quotes you as endorsing this for global. https://mail.python.org/pipermail/python-3000/2006-November/004166.html
- Previous message (by thread): [Python-Dev] Whatever happened to 'nonlocal x = y'?
- Next message (by thread): [Python-Dev] Whatever happened to 'nonlocal x = y'?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]