[Python-Dev] PEP 340: Breaking out.
Rodrigo Dias Arruda Senra
rodsenra at gpr.com.br
Wed May 4 21:24:10 CEST 2005
[ Shane Hathaway ]:
> I'd like to suggest a small language enhancement that would fix this
> example. Allow the break and continue statements to use a keyword,
> either "for" or "while", to state that the code should break out of both
> the block statement and the innermost "for" or "while" statement. The
> example above would change to:
>
> for name in filenames:
> opening(name) as f:
> if f.read(2) == 0xFEB0:
> break for
>
> This could be a separate PEP if necessary. When a "break for" is used
> in a block statement, it should raise a new kind of exception,
> BreakForLoop, and the block statement should propagate the exception.
> When used outside a block statement, "break for" can use existing Python
> byte code to jump directly to the next appropriate statement.
What about nested blocks ? When they act as iterators that would be
desireable too.
What to do then:
- baptize blocks -> break <name>
- keep them anonymous -> break #enclosing_scope_counter
- do not support them
cheers,
Senra
--
Rodrigo Senra
--
MSc Computer Engineer rodsenra(at)gpr.com.br
GPr Sistemas Ltda http://www.gpr.com.br/
Personal Blog http://rodsenra.blogspot.com/
More information about the Python-Dev
mailing list