[Python-ideas] If branch merging

Ethan Furman ethan at stoneleaf.us
Fri Jun 12 16:14:05 CEST 2015


On 06/11/2015 11:55 PM, Stephen J. Turnbull wrote:
> Ethan Furman writes:
>
>> I would find the 'as NAME' portion very useful as long as it wasn't
>> shadowing nor unset.
>
> I don't understand the "not shadowing" requirement.  If you're not
> going to create a new scope, then
>
>   from foo import *
>
>   if expr as val:
>       use(val)
>
>   bar(val)
>
> might very well shadow foo.val and break the invocation of bar.  Is
> use of the identifier "val" in this context an error?  Or what?

Likewise:

    for val in some_iterator:
       use(val)

    bar(val)

will shadow foo.val and break bar; yet for loops do not create their own scopes.

    with open('somefile') as val:
       stuff = val.read()

   bar(val)

will also shadow foo.val and break bar, yet with contexts do not create their own scopes.

And let's not forget:

    val = some_func()

    bar(val)

Again -- no micro-scope, and foo.val is shadowed.

--
~Ethan~


More information about the Python-ideas mailing list