Python无原生goto功能时跨循环跳转的最优实现方案咨询
你当前把第一个循环封装为函数的方案完全是符合Python设计规范的合理实现,并不复杂,是该场景下的优选方案之一。Python本身刻意没有提供goto语法,就是为了避免无规则跳转带来的代码可读性灾难,用函数封装独立逻辑块是官方推荐的逻辑拆分方式。
如果你想要更轻量化的实现,也可以采用状态标记+外层循环的方式,不需要额外定义函数,示例如下:
run_first_loop = True while True: # 执行第一个循环 while run_first_loop: print("Hey! Some text.. blablah") x = input("You wanna continue? (yes/no) ") if x != "yes": print("End of loop") run_first_loop = False break # 执行第二个循环 print("Hey! Some more text, blablah even more") x = input("You wanna continue? (yes/no): ") if x == "yes": continue elif x == "no": print("End of program") break else: # 标记下次循环重新执行第一个循环 run_first_loop = True
两种方案没有绝对的最优选择:
- 如果你后续还会在其他位置复用第一个循环的逻辑,优先选你自己实现的函数封装方案,可维护性更高
- 如果只是当前这个简单场景下临时使用,状态标记法会更简洁,不需要额外维护独立函数
内容的提问来源于stack exchange,提问作者NinjaSnickers
相关产品推荐
相关产品推荐

