[Python] 探索性編程與idleX


1 探索式編程

前面介紹過幾個Python的Interactive Shell,對於Python, Ruby這類動態語言來說,一個交互式的shell(用 emacs的術語來說,叫做REPL,也就是Read-Evaluation-Print Loop)很重要,你可以在里面試一下某個表達式是否 正確,某個包是怎樣使用的,用dir(obj)看看一個對象都有些啥屬性,用help(foo)查看幫助。

當代碼寫到某個位置,我們不太清楚某個函數返回的是個什么東西,就可以在程序中嵌入這樣的shell(參考: Embedding a Python Shell in a Python Script | write-only by Gregg Lind ),然后程序運行到這里,我們就 可以在shell中查看變量,查看某個對象的文檔,嘗試調用某個函數,有的shell前端還提供了增強的方法讓你可以 詳細地查看(inspect)一個對象(比如IPython里面的 —— 習慣了這種方式之后,Java上那種傳統的調試器相對來說, 就覺得很弱了。

不知道什么時候,我的腦袋里面就冒出來一個名詞:探索式編程。但后來搜索了一下,發現並沒有這樣一個說法, 看來是我杜撰了(估計我是受了“探索式測試”這個名詞的影響 —— 畢竟我是個搞測試工具的)。

2 IdleX

前一段一個不搞編程的朋友想學一點編程,我給推薦了Python,他也不願意到處去找各種IDE、編輯器,就着 Python自帶的IDLE就開始寫起代碼來了。我想起以前看到過一個IDLE的改進項目IdleX,對IDLE做了多種增強,一看 之下,覺得還真挺不錯的,值得推薦。

IPython里面有個notebook 概念,你可以一次輸入多行交給shell執行,每次輸入的多行組成一個cell,而相關的 多個cell以及它們的輸出組合起來,構成一個notebook。

但不知道為為什么,我總覺得這個notebook用的上的時候少,而IdleX提供了一個變種:我們仍然是直接編輯一個代 碼文件,但可以特殊的分隔符(它這里是"## ")將代碼分隔為一段一段的(它稱為SubCode),然后每次可以選擇 一個或者多個SubCode發送給shell執行。

 

IdleX的其它優點:

  1. 跟IDLE一樣,是用tk寫的界面,跨平台
  2. 輕量級
  3. 支持IPython,算是IPython圖形界面前端的最小版本,比IPython官方的Qt版本安裝起來方便太多了
  4. 對IDLE編輯器的增強:多文件編輯、Code Browser、顯示行號,直接調出python273.chm等等
  5. 對IDLE的shell的增強:可用上下光標鍵調出前后歷史命令,在多次會話間保留歷史,等等
  6. 支持運行GUI代碼,比如Tkinter, GTK, Qt, Qt4, PySide, wxPython (其實主要是個GUI mainloop問題)

詳細說明請參閱 IdleX Features

 

Date: 2014-06-04 21:48:14 HKT

Author: Ba Manzi

Org version 7.8.11 with Emacs version 23

Validate XHTML 1.0


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM