python3 如何使用 goto 跳轉執行到指定代碼行

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代碼有一段時間瞭,有一個問題一直困擾著我:瀏覽代碼的時候時常需要從一個函數跳轉到另一個函數,有時候兩個函數相聚比較遠,我一直不知道怎麼直接回到上一個函數。

於是我采取的辦法是按ctr+F然後輸入上一個函數的函數名來定位並且回到上一個函數。不忍直視~~~

下面是找到跳轉按鈕的過程:

1.找到View下面的Toolbar並勾選上

SouthEast

2.按鈕出現

SouthEast

一款對瀏覽代碼功能支持良好的IDE一般Toolbar上都有按鈕或者會有快捷鍵可以在歷史瀏覽頁面之間跳轉。而我的Pycharm的默認設置一直是將Toolbar隱藏起來的。

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: