zoukankan      html  css  js  c++  java
  • [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
  • 相关阅读:
    ffserver搭建服务器
    socketconnect函数详解
    ffmpeg 发送媒体流
    Android—Socket编程
    流媒体客户端的结构与原理浅析
    杭电分类:大数
    各种计时函数
    UVA465:Overflow
    杭电:sort
    CODING常见错误原因
  • 原文地址:https://www.cnblogs.com/bamanzi/p/exploratory-programming-and-idlex.html
Copyright © 2011-2022 走看看