spyder單步調試--小白

    我是python小白,在工作過中也沒機會用到python,一直使用的都是matlab和vs,被安利了python各種優勢,纔開始學習python。在學習python的過程中,難免要對代碼各種單步調試,好發現在函數內部到底對數據都做了什麼操作。無奈,習慣了matlab和vs的單步調試思路,摸索了好一會才明白spyder 的調試方法。如果各位大佬對spyder單步調試有什麼獨門絕學,還不吝賜教,多謝。


    1. 編寫python代碼

假設我已經有一段python代碼,需要對該段代碼進行單步調試,如下圖


    2. 設置斷點

這裏很重要,比如我要測試代碼中的split_dataset這個函數,在編輯器中調用這個函數,如36行所示,在調用函數的地方加入斷點。

這裏我要吐槽的一點就是單步調試只能在編輯器中進行,不能在console中執行。比如我把斷點設置在函數split_dataset內部,比如26行的位置,在console中輸入35,36行的內容,然後單步調試是進入不到斷點的位置的,這裏與matlab的不一樣。也許是我操作不對,反正在console中測試斷點我是沒成功過。希望哪位大牛能指導一二。


3. 調試

如下圖所示。設置好斷點之後按ctrl+F5即進入調試模式。這裏還要吐槽一點就是進入調試模式竟然一開始就停止在第一行,不像matlab或者vs那樣,一開始就執行到斷點所在位置。因爲調試一開始進入到第一行,所以,按那個“》”符號(ctrl+F12)進入下一個斷點位置,即我們設置的那個斷點位置。執行到斷點位置之後需要進入函數內部,則按ctrl+F11,如下圖所示。注意截圖裏的高亮並不是因爲單步到這裏高亮的,而是我鼠標放在這裏引起的高亮,spyder單步執行不會高亮單步的位置,單步的位置從下方的console窗口看。


這個圖片25行有一個錯誤,是我截圖的時候不小心按到了a鍵盤,刪除a即可


單步調試

4. 不爽的地方

4.1 調試只能在editor中執行?

我不知道是不是我操作的問題,spyder不能像matlab那樣,在command line窗口中調用某個函數,並且那個函數內部已經有了斷點,調試的時候自動跳轉到斷點位置。spyder不可以,在console窗口中調用函數時,不會跳轉到editor窗口中斷點位置。

4.2 單步位置高亮

spyder單步到某一行時,不會引起這一行的高亮。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章