2 回答

TA貢獻2011條經驗 獲得超2個贊
一、具體用法
首先安裝一個 goto 的包(因為官方是沒有 goto 語句的)
pip install goto-statement
具體的語法--注意: 對需要使用goto的函數,前面加個@patch
from goto import with_goto
@with_goto
def range(start, stop):
i = start
result = []
label .begin
if i == stop:
goto .end
result.append(i)
i += 1
goto .begin
label .end
return result
二、原理解析
原理:通過給所有函數修改trace,然后在異常時就會執行設置的函數。
sys.settrace(_trace)
frame = sys._getframe().f_back
while frame:
frame.f_trace = _trace
frame = frame.f_back
擴展資料:
Goto語句與結構化程序設計
goto語句問題的提出直接推動了結構化程序設計(structuredprogramming)的思想和程序設計方法學的誕生和發展。結構化程序設計方法引入了工程思想和結構化思想,使大型軟件的開發和編程都得到了極大的改善。
結構化程序設計方法的主要原則可以概括為自頂向下,逐步求精,模塊化,限制使用goto語句。
1.自頂向下:程序設計時,應先考慮總體,后考慮細節;先考慮全局目標,后考慮局部目標。不要一開始就過多追求眾多的細節,先從最上層總目標開始設計,逐步使問題具體化。
2.逐步求精:對復雜問題,應設計一些子目標作為過渡,逐步細化。
3.模塊化:一個復雜問題,肯定是由若干稍簡單的問題構成。模塊化是把程序要解決的總目標分解為子目標,再進一步分解為具體的小目標,把每一個小目標稱為一個模塊。
4.限制使用goto語句
結構化程序設計方法的起源來自對goto語句的認識和爭論??隙ǖ慕Y論是,在塊和進程的非正常出口處往往需要用goto語句,使用goto語句會使程序執行效率較高;在合成程序目標時,goto語句往往是有用的,如返回語句用goto。
否定的結論是,goto語句是有害的,是造成程序混亂的禍根,程序的質量與goto語句的數量成反比,應該在所有高級程序設計語言中取消goto語句。取消goto語句后,程序易于理解、易于排錯、容易維護,容易進行正確性證明。作為爭論的結論,1974年Knuth發表了令人信服的總結,并證實了:
(1)goto語句確實有害,應當盡量避免;
(2)完全避免使用goto語句也并非是個明智的方法,有些地方使用goto語句,會使程序流程更清楚、效率更高。
(3)爭論的焦點不應該放在是否取消goto語句上,而應該放在用什么樣的程序結構上。其中最關鍵的是,應在以提高程序清晰性為目標的結構化方法中限制使用goto語句
- 2 回答
- 0 關注
- 319 瀏覽
添加回答
舉報