2013-08-05 76 views
1

作爲一名自學成才的程序員,我學會了在構建/運行腳本時使用交互式控制檯進行調試,該控制檯將所有變量保存在內存中。然而,我注意到在IDE中進行調試的壓倒性趨勢(並且,我認爲CLI +編輯器解決方案就是這樣)是在一個地方構建腳本並提供一個單獨的控制檯「沙箱」類型區域,只在複製時保留變量/粘貼你的代碼。如何在沒有交互式控制檯的情況下進行調試

如何在沒有交互式控制檯的情況下進行調試?任何人都可以列出幾個可以幫助我成爲更好的編程器/調試器的調試步驟嗎?

目前,這是我做的一個非常簡化的版本:

  1. 寫一些僞代碼(有時)
  2. 寫一些代碼的編輯器應該工作
  3. 運行/建腳本
  4. 檢查標準輸出錯誤
  5. 如果沒有錯誤,那麼7
  6. 如果犯錯然後在修改違規代碼後回到2。
  7. 在控制檯中鍵入變量名稱以驗證它們看起來像我預期的那樣。
  8. 沖洗和重複,直到它按我的意圖工作。
+0

「如果沒有錯誤,那麼7」? –

+1

瞭解如何使用pdb – jh314

+0

@ jh314這回答了我關於如何從python運行python腳本的另一個問題。我現在覺得自己沒有聽說過pdb,所以你的評論是非常有幫助的。謝謝。 – TheProletariat

回答

8

這樣做的最好方法是write tests。爲您自動執行步驟3至7。它還可以防止在更改其他代碼時發生迴歸。

+0

並設計你的代碼是可測試的。 – andy256

1

可以使用q模塊這一點很容易https://pypi.python.org/pypi/q

xyxy.py

import q 
do_something() 
q.d() #this will open interactive shell 

def f(): 
    do_something() 
    q.d() #open console here with access to all local variables of f 

你也可以使用自動測試(內建unittest模塊或nosetests或別的東西)

1

使用一個像樣的python IDE - 這裏有很多,你可以停下來在斷點處通過懸停或添加手錶來檢查變量並輸入上下文c鞋墊,您可以在斷點的上下文中與代碼進行交互。

+0

我實際上在StackOverflow中遇到了問IDE問題[here](http://stackoverflow.com/questions/18025529/is-there-a-python-ide-that-keeps-variables-in-memory?noredirect= 1個#comment26364918_18025529)。 Pycharm和其他許多人都這樣做,就像我習慣的那樣,但我認爲它不是最好的編碼方式。 – TheProletariat

+0

哪一個最好是一個意見問題,因此不是一個__good__問題 - 代碼的最佳實現方式就是知道這一切,並且第一次就做好。對我們大多數人來說不會發生這種情況。 –

0

事實證明,PyCharm至少有一個交互式控制檯,默認的keymapping(在Mac上)是option-shift-E。然後你的變量被加載到內存中。但是,上述建議是更好的編程實踐。

相關問題