下面文章主要介绍Python核心编程的构造和技巧,Python确实是一种十分精彩又强大的语言,可以通过在不同的平台上进行程序的运行和操作,即使对不了解开发编程的用户来说Python确实是一门入手的好语言。
所以先把它们放进这段代码,在后面会针对它们提一些问题。第二行比较有趣,导入 wxPython 的 wx 库。当然,wx 库(基本 wxPython 声明)包括基本类,如框架和应用程序。
/注意这些行的结尾没有分号。如果您编写过 Perl 程序,那您要花费一点功夫来熟悉 Python 的输入习惯。但等等,它对您来说是陌生的。在第三行,定义了第一个 Python 类 -- main_window。main_window 类是在 wx 模块中定义的 wxFrame 类的派生类。正如您猜想的,任何窗口都是 wxFrame 类。
在第四行,定义了初始化方法,main_window 需要定义的唯一方法(当然,其它的在 wxFrame 类中)。初始化方法取参数 parent、id、title 以及当然还有(作为该对象的引用的)self。self 参数是所有Python核心编程法的第一个参数。
到现在为止,如果您编写过 C/C++,您一定奇怪为什么没有花括号。是很奇怪,Python 把缩进当作重要的句法。任何有子语句的语句以冒号结束,所有该行下的缩进行都属于以该冒号终止的语句。
当缩进回复到原来的缩进时,这一块就完成了。更为奇怪的是,这种安排实际上很好用,刚开始编程的程序员发现,这要比用花括号来说明结构要容易。幸运地是,这还意味着更少的击键次数,所以老程序员也能接受它。
所以缩进的第 5、6 和 7 行属于在第 4 行中定义的方法。它们分别调用 wxFrame 父类的初始化例程(实际进行设置一个窗口的所有繁重工作),定义一个控件以适合新的主窗口,以及确保窗口是可见的。
wxPython 会重新调整父窗口的大小,除非专门告诉不要这样做。如果您曾编写过任何 Microsoft Windows 代码,通过重新调整控件大小来匹配父窗口,那您会很快喜欢 wxPython。
第 6 行的实际意义是完成一个如同 Notepad 一样的编辑器。这还不算什么。用 C/C++ 代码,则需要更多才能实现,不是吗?记住 -- 我们在这做的不是固定大小的对话框,它是真正在窗口主体中和可调整大小的带编辑器的 Windows- 化应用程序。
让我们继续。第 8 行定义了由 wxApp 类派生的 App 对象。它指定了应用程序对象,当运行时,创建一个 main_window 对象,并将它设置为顶部窗口。最后定义完类,创建应用程序对象,开始运行它的主循环。
如果您做过任何 C/C++ Windows 编程,会认识到 MainLoop 方法是所有 Windows 程序的正常事件循环。这个启动代码的风格确实与脚本语言保持一致。记住,Python 解释器逐行读取代码,并边读边执行它。所以,一旦定义了类,我们只需在脚本中调用它。
这就是 它。在这十五行代码中,实现了一个简单的文本编辑器,这段代码无需修改就可以在 Windows 或 UNIX 上运行。而且很容易添加更多特性,这太好了,在下一节将要讲述这些。
您可能认为,“解释型语言,效率不高。对于较大的程序,执行起来会很慢。”在一定程度上,这是正确的。事实上,任何影响性能的代码通常用 C/C++ 重新实现,并链接到 Python核心编程,这是很容易做的。所以 Python 通常用作绑定功能性模块和 GUI 显示(或应用程序服务器功能,如果您需要该功能)的粘合剂。但作为粘合剂,Python 是非常有效的。
您可以在很短的时间内用 Python 实现真正的程序,由于其面向对象和格式方面有限的创造机会,它们通常可使用好几个星期。而且,如果您怀疑使用解释型语言将大程序结合在一起的想法,那您不妨考虑一下 Microsoft Word 的早期版本是如何实现的。
至少最近的 Windows 的 Word 版本 6.0,其 Word Basic 函数事实上只是编译过的代码;而 GUI 是由 pcode 解释性型语言构建的。(MS Word 6.0 是用 Word Basic 编写的,很有效,这是一个很聪明的设计,其原因之一 -- 它是最早用内置解释器的桌面程序。)
这里您所损失的是在性能方面(实际上,很少),但您可以很容易地通过简化实现和(更重要)简化定制来弥补。事实上,通过包含 Python 您已经自动包括了易于展现给您的用户的脚本语言,同时,对于编程的新手来说,该语言也证明了其易于学习。
如果钻研它,可以用比您现在花费的要少的功夫创作出世界级的软件。因为,如果该语言能为 Microsoft 服务,那么,它也能为您服务!无论如何,言归正传,这里向您展示一个程序,它事实上做一些值得做的事情。这个程序让您创建一个称之为项目的文本文件列表。您可以编辑和保存它们。
更重要的是,您可以很容易地看到如何进一步增强基本组织器。我使用一个扩展版本为 CVS(标准开放源码版本控制系统)的前端。代码在下面。我们(仍然相当小)的应用程序从 15 行扩展到大约 300行,但它现在能实现许多事情。
【编辑推荐】