python3 如何使用 goto 跳轉(zhuǎn)執(zhí)行到指定代碼行
1. 緣起
在實(shí)際開(kāi)發(fā)中遇到這樣一個(gè)問(wèn)題:
以下是偽代碼
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一致。
發(fā)現(xiàn)except 中需要粘貼之前寫(xiě)過(guò)的calculate embedding
簡(jiǎn)單概括就是:
somecode_1 try: somecode_2 except: somecode_3 somecode_1 ## 重新執(zhí)行
2. 使用goto
(1)安裝goto
pip install goto-statement
(2)使用goto完成一個(gè)小例子
官方文檔見(jiàn):https://pypi.org/project/goto-statement/
定義函數(shù)
from goto import with_goto @with_goto #必須有 def test(list_): tmp_list = list_ label.begin #標(biāo)識(shí)跳轉(zhuǎn)并開(kāi)始執(zhí)行的地方 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 #在有跳轉(zhuǎn)標(biāo)識(shí)的地方開(kāi)始執(zhí)行 return result
運(yùn)行
a = test([1, 3, 4, 0, 6]) print(a)
結(jié)果
[1.0, 0.3333333333333333, 0.25, 0.16666666666666666]
注意:如果你在ide山運(yùn)行l(wèi)abel 和 goto 下有紅色波浪線提示錯(cuò)誤。不用理會(huì)直接執(zhí)行即可
補(bǔ)充:Pycharm跳轉(zhuǎn)回之前所在的代碼行
用Pycharm寫(xiě)Python代碼有一段時(shí)間了,有一個(gè)問(wèn)題一直困擾著我:瀏覽代碼的時(shí)候時(shí)常需要從一個(gè)函數(shù)跳轉(zhuǎn)到另一個(gè)函數(shù),有時(shí)候兩個(gè)函數(shù)相聚比較遠(yuǎn),我一直不知道怎么直接回到上一個(gè)函數(shù)。
于是我采取的辦法是按ctr+F然后輸入上一個(gè)函數(shù)的函數(shù)名來(lái)定位并且回到上一個(gè)函數(shù)。不忍直視~~~
下面是找到跳轉(zhuǎn)按鈕的過(guò)程:
1.找到View下面的Toolbar并勾選上
2.按鈕出現(xiàn)
一款對(duì)瀏覽代碼功能支持良好的IDE一般Toolbar上都有按鈕或者會(huì)有快捷鍵可以在歷史瀏覽頁(yè)面之間跳轉(zhuǎn)。而我的Pycharm的默認(rèn)設(shè)置一直是將Toolbar隱藏起來(lái)的。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- 淺談對(duì)Python變量的一些認(rèn)識(shí)理解
- 教你利用Python破解ZIP或RAR文件密碼
- Python協(xié)程asyncio模塊的演變及高級(jí)用法
- python基于socketserver實(shí)現(xiàn)并發(fā),驗(yàn)證客戶端的合法性
- Python進(jìn)階之高級(jí)用法詳細(xì)總結(jié)
- 如何用python抓取B站數(shù)據(jù)
- python print()函數(shù)的end參數(shù)和sep參數(shù)的用法說(shuō)明
- python實(shí)現(xiàn)某考試系統(tǒng)生成word試卷
- 解讀python基于netconf協(xié)議獲取網(wǎng)元的數(shù)據(jù)
相關(guān)文章
詳解Python網(wǎng)絡(luò)框架Django和Scrapy安裝指南
這篇文章主要介紹了詳解Python網(wǎng)絡(luò)框架Django和Scrapy安裝指南,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-04-04淺談python 線程池threadpool之實(shí)現(xiàn)
這篇文章主要介紹了淺談python 線程池threadpool之實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11python?pycharm中使用opencv時(shí)沒(méi)有代碼自動(dòng)補(bǔ)全提示的解決方案
我們?cè)谑褂胮ycharm的時(shí)候總是很喜歡其強(qiáng)大的代碼提示功能,下面這篇文章主要給大家介紹了關(guān)于python?pycharm中使用opencv時(shí)沒(méi)有代碼自動(dòng)補(bǔ)全提示的解決方案,需要的朋友可以參考下2022-09-09Python collections.defaultdict模塊用法詳解
這篇文章主要介紹了Python collections.defaultdict模塊用法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06Django點(diǎn)贊的實(shí)現(xiàn)示例
本文主要介紹了Django點(diǎn)贊的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03對(duì)python中的xlsxwriter庫(kù)簡(jiǎn)單分析
今天小編就為大家分享一篇對(duì)python中的xlsxwriter庫(kù)簡(jiǎn)單分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05