Python3 中如何使用 goto 实现代码跳转执行

不晚
不晚
发布时间:2026-10-12 | 2人浏览过
原创

本文介绍如何在 Python3 中使用 goto-statement 库实现类似 C 语言的代码跳转功能,解决异常处理中重复代码的问题。通过安装库、定义标签与跳转指令,演示具体代码示例及输出结果。同时补充 Pycharm 中查看代码浏览历史、快速返回上一函数位置的实用技巧,提升开发效率。

1. 背景介绍

在实际项目开发过程中,曾遇到如下场景:

以下示例代码为伪代码逻辑:

if embedding.model is not exist:
 calculate embedding   ## moudel_1
 save embedding.model
else :
 embedding = load embedding.model

try:
 use embedding
except KeyError:
 calculate embedding    ##这里与moudel_1一致。

观察到在 except 异常处理块中,需要重复粘贴之前已经编写好的 calculate embedding 逻辑。

简而言之,核心需求是:

somecode_1
try:
 somecode_2
except:
 somecode_3   
 somecode_1   ## 重新执行

2. 引入 goto 机制

(1)安装 goto 相关库

pip install goto-statement

(2)通过 goto 完成一个基础示例

官方文档地址:https://pypi.org/project/goto-statement/

函数定义部分

from goto import with_goto

@with_goto     #必须有
def test(list_): 
    tmp_list = list_
    label.begin  #标识跳转并开始执行的地方
    result = []
    try:
        for i, j in enumerate(list_):
            tmp = 1 / j
            result.append(tmp)
            last_right_i = i
    except ZeroDivisionError:
        del tmp_list[last_right_i + 1]
        goto.begin      #在有跳转标识的地方开始执行
    return result

执行代码

a = test([1, 3, 4, 0, 6])
print(a)

运行结果

[1.0, 0.3333333333333333, 0.25, 0.16666666666666666]

注意:如果在 IDE 中运行,label 和 goto 下方可能出现红色波浪线提示错误,此时无需理会,直接执行代码即可。

补充:Pycharm 中跳转回之前所在代码行的方法

使用 Pycharm 编写 Python 代码已有一段时间,但有一个问题一直困扰着我:在浏览代码时,经常需要从当前函数跳转到另一个函数,而有时两个函数之间的距离较远,我一直不清楚如何直接返回到上一个函数位置。

为此,我采取的办法是按 Ctrl+F 然后输入上一个函数的函数名来定位并回到上一个函数。这种方式实在不够直观且效率低下。

以下是找到跳转按钮的过程:

1. 找到 View 菜单下的 Toolbar 并勾选启用

2. 按钮出现后

一款对代码浏览功能支持良好的 IDE,其 Toolbar 上通常会有按钮或者提供快捷键,用于在历史浏览页面之间跳转。而我的 Pycharm 默认设置一直是将 Toolbar 隐藏起来的。

以上为个人经验分享,希望能给大家一个参考,也希望大家多多支持本站。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表