热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

[Python]探索性编程与idleX

1探索式编程前面介绍过几个Python的InteractiveShell,对于Python,Ruby这类动态语言来说,一个交互式的shell࿰

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

转:https://www.cnblogs.com/bamanzi/p/exploratory-programming-and-idlex.html



推荐阅读
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • Python语法上的区别及注意事项
    本文介绍了Python2x和Python3x在语法上的区别,包括print语句的变化、除法运算结果的不同、raw_input函数的替代、class写法的变化等。同时还介绍了Python脚本的解释程序的指定方法,以及在不同版本的Python中如何执行脚本。对于想要学习Python的人来说,本文提供了一些注意事项和技巧。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 十大经典排序算法动图演示+Python实现
    本文介绍了十大经典排序算法的原理、演示和Python实现。排序算法分为内部排序和外部排序,常见的内部排序算法有插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。文章还解释了时间复杂度和稳定性的概念,并提供了相关的名词解释。 ... [详细]
  • 本文介绍了在满足特定条件时如何在输入字段中使用默认值的方法和相应的代码。当输入字段填充100或更多的金额时,使用50作为默认值;当输入字段填充有-20或更多(负数)时,使用-10作为默认值。文章还提供了相关的JavaScript和Jquery代码,用于动态地根据条件使用默认值。 ... [详细]
  • 开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
    本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ... [详细]
  • Unity3D引擎的体系结构和功能详解
    本文详细介绍了Unity3D引擎的体系结构和功能。Unity3D是一个屡获殊荣的工具,用于创建交互式3D应用程序。它由游戏引擎和编辑器组成,支持C#、Boo和JavaScript脚本编程。该引擎涵盖了声音、图形、物理和网络功能等主题。Unity编辑器具有多语言脚本编辑器和预制装配系统等特点。本文还介绍了Unity的许可证情况。Unity基本功能有限的免费,适用于PC、MAC和Web开发。其他平台或完整的功能集需要购买许可证。 ... [详细]
  • 本文介绍了使用readlink命令获取文件的完整路径的简单方法,并提供了一个示例命令来打印文件的完整路径。共有28种解决方案可供选择。 ... [详细]
  • Python脚本编写创建输出数据库并添加模型和场数据的方法
    本文介绍了使用Python脚本编写创建输出数据库并添加模型数据和场数据的方法。首先导入相应模块,然后创建输出数据库并添加材料属性、截面、部件实例、分析步和帧、节点和单元等对象。接着向输出数据库中添加场数据和历程数据,本例中只添加了节点位移。最后保存数据库文件并关闭文件。文章还提供了部分代码和Abaqus操作步骤。另外,作者还建立了关于Abaqus的学习交流群,欢迎加入并提问。 ... [详细]
  • 引号快捷键_首选项和设置——自定义快捷键
    3.3自定义快捷键(CustomizingHotkeys)ChemDraw快捷键由一个XML文件定义,我们可以根据自己的需要, ... [详细]
  • 获取时间的函数js代码,js获取时区代码
    本文目录一览:1、js获取服务器时间(动态)2 ... [详细]
  • 浅解XXE与Portswigger Web Sec
    XXE与PortswiggerWebSec​相关链接:​博客园​安全脉搏​FreeBuf​XML的全称为XML外部实体注入,在学习的过程中发现有回显的XXE并不多,而 ... [详细]
author-avatar
ningxiao088_272
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有