python 多层嵌套跳转的方法

#跳转
#Python 不支持 goto 和 label,想要在多层嵌套循环中跳转,稍稍有些麻烦。最简单的做法
#是设定跳转标志,并在相应位置检查。
def test():
    stop = False
    while True:
        while True:
            stop = True
            # 中断前设定跳出标志,供外循环判断。
            break
        if stop: break
        #或者,将内层循环重构为函数,基于返回值作出判断。
def test():
    def inner():
    # 内循环重构函数,以返回值作为跳转标志。
    while True:
        return False
    return True
    while True:
        if not inner(): break
#更激进的做法是抛出异常,可绕开循环语句和函数限制,在调用堆栈层面拦截捕获。当然,
#这涉及函数调用和异常处理内容,后文另作详述。
#网上有修改字节码插入跳转指令实现 goto 的方法,可供研究,不建议使用。
#另定义多个异常,分别 raise 和 except,也算是变向实现 goto label 机制。

转载 python学习笔记 第三版

猜你喜欢

转载自blog.csdn.net/qq_35515661/article/details/82953177